5539 lines
146 KiB
YAML
5539 lines
146 KiB
YAML
#
|
|
# Built-in objects
|
|
#
|
|
|
|
# YAML conventions:
|
|
#
|
|
# - Indent by two, indent lists of objects too.
|
|
# - Quoted used for keys, explicit string values, hex data, attributes.
|
|
# Not used for classes, built-in ID values, etc, unless necessary.
|
|
# - Double quotes used throughout to allow escaping.
|
|
#
|
|
# Top level object format is mostly self explanatory, a few notes:
|
|
#
|
|
# - The "id" string is used for referencing objects from property table
|
|
# - Class names must match array in genbuiltins.py
|
|
# - If the top level object is a function:
|
|
# - varargs: if true, function is vararg (nargs = DUK_VARARGS)
|
|
# - nargs: nargs (ignored if varargs true); if missing, default from 'length' property
|
|
# - magic: see below
|
|
# - native: native function name
|
|
# - callable: true/false, depending on function
|
|
# - constructable: true/false, depending on function
|
|
# - special_call: true/false, used for .call(), .apply(), etc which
|
|
# need special casing in runtime call handling
|
|
# - To disable an object without removing its metadata, you can
|
|
# use 'disable: true'.
|
|
# - If the object is dependent on Duktape configuration, you can make the
|
|
# object optional using e.g. 'present_if: DUK_USE_BUFFEROBJECT_SUPPORT'.
|
|
# If the value is a list, the object is present if all listed options are
|
|
# enabled (logical AND).
|
|
# - If the object needs a DUK_BIDX_xxx define in Duktape source code, which
|
|
# also implies it'll get a slot in thr->builtins[] array, use 'bidx: true'.
|
|
#
|
|
# Property format:
|
|
#
|
|
# - key: verbatim string key, codepoints U+0000...U+00FF map to bytes,
|
|
# so that \u0082 is 0x82 prefix, \u00FF is 0xFF prefix, etc. Key
|
|
# can also be a symbol, with the same format as for symbol values.
|
|
# - value: see below
|
|
# - attributes: string of format /w?e?c?a?/, e.g. "wc" is writable and
|
|
# configurable
|
|
# + w: writable
|
|
# + e: enumerable
|
|
# + c: configurable
|
|
# + a: accessor (determined automatically, not necessary to give explicitly)
|
|
# - auto_lightfunc: if true (which is default), function property may be
|
|
# automatically converted to a lightfunc if other automatic lightfunc
|
|
# conversion criteria are met; use "auto_lightfunc: false" to prevent
|
|
# lightfunc conversion
|
|
# - May also have feature tags like "es6: true" to indicate property
|
|
# is related to a specific standard
|
|
# - To disable a property without removing its metadata, you can use
|
|
# 'disable: true'.
|
|
# - If the property is dependent on Duktape configuration, you can make the
|
|
# property optional using e.g. 'present_if: DUK_USE_BUFFEROBJECT_SUPPORT'.
|
|
# List of options is interpreted as for objects (logical AND).
|
|
#
|
|
# Property value format:
|
|
#
|
|
# - ECMAScript undefined:
|
|
# - type: undefined
|
|
# - Plain YAML/JSON null (parses as Python None)
|
|
# - treated as ECMAScript null
|
|
# - Plain string:
|
|
# - treated as plain string, string data as with keys
|
|
# - Plain symbol:
|
|
# - type: symbol
|
|
# - variant: global, wellknown, hidden, userhidden
|
|
# - string: symbol string without any prefix
|
|
# - NOTE: ES2015 well-known symbols are local symbols with 'string' as
|
|
# their description, and a fixed suffix never overlapping with
|
|
# runtime local symbols
|
|
# - NOTE: "hidden symbols" are Duktape specific internal properties
|
|
# (called just internal properties in 1.x)
|
|
# - Plain number:
|
|
# - treated as a fastint/ieee double
|
|
# - IEEE double:
|
|
# - type: double
|
|
# - bytes: IEEE bytes in big endian format, hex encoded
|
|
# - NOTE: if you define a NaN, make sure it is in the Duktape normalized
|
|
# form (see bi_global 'NaN' property): otherwise strange things will
|
|
# happen with packed duk_tval
|
|
# - Buffer:
|
|
# - type: buffer
|
|
# - NOTE: not supported yet, type is reserved
|
|
# - Pointer:
|
|
# - type: pointer
|
|
# - NOTE: not supported yet, type is reserved
|
|
# - Lightfunc:
|
|
# - type: lightfunc
|
|
# - native: native function name
|
|
# - magic: -128 to 127
|
|
# - length: 0 to 15
|
|
# - nargs: 0 to 14; or varargs: true
|
|
# - varargs: if true, target has variable arguments
|
|
# - Reference to a built-in object:
|
|
# - type: object
|
|
# id: ID string of target object
|
|
# - Accessor (setter/getter):
|
|
# - type: accessor
|
|
# - getter_id: object ID of getter
|
|
# - setter_id: object ID of setter
|
|
# - Native function shorthand; alternative to defining a function as a
|
|
# native object and referencing it using an ID:
|
|
# - type: function (implicitly callable)
|
|
# - callable: default is true
|
|
# - constructable: default is false
|
|
# - native: native function name
|
|
# - length: function .length (optional, defaults to 0)
|
|
# - nargs: function nargs (optional, defaults to length)
|
|
# - varargs: if true, function is vararg (nargs = DUK_VARARGS)
|
|
# - magic: magic value for function (see below)
|
|
# - name: optional, provides .name property (non-writable, non-enumerable, non-configurable)
|
|
# - special_call: recognized in shorthand
|
|
# - Accessor (setter/getter) shorthand:
|
|
# - type: accessor
|
|
# - callable: default is true
|
|
# - constructable: default is false
|
|
# - getter: native function name
|
|
# - setter: native function name
|
|
# - getter_magic: magic value for getter
|
|
# - setter_magic: magic value for setter
|
|
# - getter_nargs: nargs value for getter
|
|
# - setter_nargs: nargs value for setter
|
|
# - getter_length: length value for getter (0 if missing)
|
|
# - setter_length: length value for setter (0 if missing)
|
|
# - Structured object shorthand:
|
|
# - type: structured
|
|
# - value: arbitrary JSON-like value
|
|
# - NOTE: value is converted into object(s) with properties
|
|
# similarly to JSON.parse() results: properties will be
|
|
# writable, enumerable, and configurable, inherit from
|
|
# Object.prototype, etc.
|
|
#
|
|
# Magic format:
|
|
#
|
|
# - Plain number: direct magic value
|
|
# - Array iterator magic:
|
|
# - type: array_iter
|
|
# - funcname: function name, e.g. "forEach"
|
|
# - Built-in object index:
|
|
# - type: bidx
|
|
# - id: id of built-object, idx to thr->builtins[]
|
|
# - One-argument math function:
|
|
# - type: math_onearg
|
|
# - funcname: name of function, e.g. "cos"
|
|
# - Two-argument math function:
|
|
# - type: math_twoarg
|
|
# - funcname: name of function, e.g. "atan2"
|
|
# - Typed array constructor
|
|
# - type: typedarray_constructor
|
|
# - elem: element type, e.g. "int8"
|
|
# - shift: shift for element size (0 = 1 byte element, 2 = 4 byte element etc)
|
|
|
|
objects:
|
|
|
|
# internal prototype: implementation specific
|
|
# Smjs: Object.prototype
|
|
# Rhino: Object.prototype
|
|
# V8: *not* Object.prototype, but prototype chain includes Object.prototype
|
|
# external prototype: apparently not set
|
|
# external constructor: apparently not set
|
|
# internal class: implemented specific
|
|
# Smjs: "global"
|
|
# Rhino: "global"
|
|
# V8: "global"
|
|
#
|
|
# E5 Sections B.2.1 and B.2.2 describe non-standard properties which are
|
|
# included below but flagged as extensions.
|
|
|
|
- id: bi_global
|
|
class: global
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
# 'globalThis' binding giving easy to access to the global object.
|
|
# Not yet standard, see https://github.com/tc39/proposal-global.
|
|
- key: "globalThis"
|
|
value:
|
|
type: object
|
|
id: bi_global
|
|
attributes: "wc"
|
|
# This could be stripped when DUK_USE_GLOBAL_BUILTIN is disabled
|
|
# but keep for now (the property is quite fundamental).
|
|
present_if: DUK_USE_GLOBAL_BINDING
|
|
|
|
- key: "NaN"
|
|
value:
|
|
type: double
|
|
bytes: "7ff8000000000000" # DBL_NAN
|
|
attributes: ""
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "Infinity"
|
|
value:
|
|
type: double
|
|
bytes: "7ff0000000000000" # DBL_POSITIVE_INFINITY
|
|
attributes: ""
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "undefined"
|
|
value:
|
|
type: undefined
|
|
attributes: ""
|
|
# This could be stripped when DUK_USE_GLOBAL_BUILTIN is disabled
|
|
# ("void 0" is the same and safer) but it's commonly used so keep.
|
|
|
|
- key: "Object"
|
|
value:
|
|
type: object
|
|
id: bi_object_constructor
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "Function"
|
|
value:
|
|
type: object
|
|
id: bi_function_constructor
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
- key: "Array"
|
|
value:
|
|
type: object
|
|
id: bi_array_constructor
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "String"
|
|
value:
|
|
type: object
|
|
id: bi_string_constructor
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "Boolean"
|
|
value:
|
|
type: object
|
|
id: bi_boolean_constructor
|
|
present_if: DUK_USE_BOOLEAN_BUILTIN
|
|
- key: "Number"
|
|
value:
|
|
type: object
|
|
id: bi_number_constructor
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "Date"
|
|
value:
|
|
type: object
|
|
id: bi_date_constructor
|
|
present_if: DUK_USE_DATE_BUILTIN
|
|
- key: "RegExp"
|
|
value:
|
|
type: object
|
|
id: bi_regexp_constructor
|
|
present_if: DUK_USE_REGEXP_SUPPORT
|
|
- key: "Error"
|
|
value:
|
|
type: object
|
|
id: bi_error_constructor
|
|
- key: "EvalError"
|
|
value:
|
|
type: object
|
|
id: bi_eval_error_constructor
|
|
- key: "RangeError"
|
|
value:
|
|
type: object
|
|
id: bi_range_error_constructor
|
|
- key: "ReferenceError"
|
|
value:
|
|
type: object
|
|
id: bi_reference_error_constructor
|
|
- key: "SyntaxError"
|
|
value:
|
|
type: object
|
|
id: bi_syntax_error_constructor
|
|
- key: "TypeError"
|
|
value:
|
|
type: object
|
|
id: bi_type_error_constructor
|
|
- key: "URIError"
|
|
value:
|
|
type: object
|
|
id: bi_uri_error_constructor
|
|
- key: "Math"
|
|
value:
|
|
type: object
|
|
id: bi_math
|
|
present_if: DUK_USE_MATH_BUILTIN
|
|
- key: "JSON"
|
|
value:
|
|
type: object
|
|
id: bi_json
|
|
present_if: DUK_USE_JSON_BUILTIN
|
|
|
|
# CBOR
|
|
- key: "CBOR"
|
|
value:
|
|
type: object
|
|
id: bi_cbor
|
|
present_if: DUK_USE_CBOR_BUILTIN
|
|
|
|
# Duktape specific
|
|
- key: "Duktape"
|
|
value:
|
|
type: object
|
|
id: bi_duktape
|
|
duktape: true
|
|
# Remains present even when disabled: needed for error augmentation internally.
|
|
#present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
|
|
# ES2015
|
|
- key: "Proxy"
|
|
value:
|
|
type: object
|
|
id: bi_proxy_constructor
|
|
es6: true
|
|
present_if: DUK_USE_ES6_PROXY
|
|
- key: "Reflect"
|
|
value:
|
|
type: object
|
|
id: bi_reflect
|
|
es6: true
|
|
present_if: DUK_USE_REFLECT_BUILTIN
|
|
- key: "Symbol"
|
|
value:
|
|
type: object
|
|
id: bi_symbol_constructor
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
- key: "Promise"
|
|
value:
|
|
type: object
|
|
id: bi_promise_constructor
|
|
es6: true
|
|
present_if: DUK_USE_PROMISE_BUILTIN
|
|
|
|
# Node.js Buffer
|
|
- key: "Buffer"
|
|
value:
|
|
type: object
|
|
id: bi_nodejs_buffer_constructor
|
|
nodejs_buffer: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
# TypedArray
|
|
- key: "ArrayBuffer"
|
|
value:
|
|
type: object
|
|
id: bi_arraybuffer_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "DataView"
|
|
value:
|
|
type: object
|
|
id: bi_dataview_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Int8Array"
|
|
value:
|
|
type: object
|
|
id: bi_int8array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Uint8Array"
|
|
value:
|
|
type: object
|
|
id: bi_uint8array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Uint8ClampedArray"
|
|
value:
|
|
type: object
|
|
id: bi_uint8clampedarray_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Int16Array"
|
|
value:
|
|
type: object
|
|
id: bi_int16array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Uint16Array"
|
|
value:
|
|
type: object
|
|
id: bi_uint16array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Int32Array"
|
|
value:
|
|
type: object
|
|
id: bi_int32array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Uint32Array"
|
|
value:
|
|
type: object
|
|
id: bi_uint32array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Float32Array"
|
|
value:
|
|
type: object
|
|
id: bi_float32array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "Float64Array"
|
|
value:
|
|
type: object
|
|
id: bi_float64array_constructor
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
# Functions
|
|
- key: "eval"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_eval
|
|
length: 1
|
|
magic: 15 # see duk_js_call.c
|
|
special_call: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "parseInt"
|
|
value:
|
|
type: object
|
|
id: bi_parse_int
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "parseFloat"
|
|
value:
|
|
type: object
|
|
id: bi_parse_float
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "isNaN"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_is_nan
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "isFinite"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_is_finite
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "decodeURI"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_decode_uri
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "decodeURIComponent"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_decode_uri_component
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "encodeURI"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_encode_uri
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
- key: "encodeURIComponent"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_encode_uri_component
|
|
length: 1
|
|
present_if: DUK_USE_GLOBAL_BUILTIN
|
|
|
|
# Non-standard extensions: E5 Sections B.2.1 and B.2.2
|
|
#
|
|
# "length" is not specified explicitly in E5 but it follows the
|
|
# general argument count rule. V8 also agrees on the lengths.
|
|
|
|
- key: "escape"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_escape
|
|
length: 1
|
|
section_b: true
|
|
present_if:
|
|
- DUK_USE_SECTION_B
|
|
- DUK_USE_GLOBAL_BUILTIN
|
|
- key: "unescape"
|
|
value:
|
|
type: function
|
|
native: duk_bi_global_object_unescape
|
|
length: 1
|
|
section_b: true
|
|
present_if:
|
|
- DUK_USE_SECTION_B
|
|
- DUK_USE_GLOBAL_BUILTIN
|
|
|
|
# Encoding API: https://encoding.spec.whatwg.org/
|
|
- key: "TextEncoder"
|
|
value:
|
|
type: object
|
|
id: bi_textencoder_constructor
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
- key: "TextDecoder"
|
|
value:
|
|
type: object
|
|
id: bi_textdecoder_constructor
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
|
|
# High resolution time API: https://www.w3.org/TR/hr-time/
|
|
# Firefox and Chrome: accessor with 'ec' attributes, setter
|
|
# allows overwrite.
|
|
# Use data property with 'wec' for now.
|
|
- key: "performance"
|
|
value:
|
|
type: object
|
|
id: bi_performance
|
|
attributes: "wec"
|
|
performance_api: true
|
|
present_if: DUK_USE_PERFORMANCE_BUILTIN
|
|
|
|
- id: bi_parse_int
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_global_object_parse_int
|
|
callable: true
|
|
constructable: false
|
|
bidx: false
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 2
|
|
attributes: "c"
|
|
|
|
- id: bi_parse_float
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_global_object_parse_float
|
|
callable: true
|
|
constructable: false
|
|
bidx: false
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
|
|
- id: bi_global_env
|
|
class: ObjEnv
|
|
duktape: true
|
|
bidx: true
|
|
|
|
# The internal 'target' property is now part of duk_hobjenv and handled
|
|
# specially by RAM built-in init code. ROM built-ins provide an explicit
|
|
# initializer based on these properties.
|
|
|
|
objenv_target: bi_global
|
|
objenv_has_this: 0
|
|
|
|
properties: []
|
|
|
|
- id: bi_object_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_object_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_object_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Object"
|
|
attributes: "c"
|
|
|
|
- key: "getPrototypeOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_getprototype_shared
|
|
length: 1
|
|
magic: 1
|
|
- key: "setPrototypeOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_setprototype_shared
|
|
length: 2
|
|
magic: 1
|
|
es6: true
|
|
- key: "getOwnPropertyDescriptor"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_get_own_property_descriptor
|
|
length: 2
|
|
magic: 0
|
|
- key: "getOwnPropertyNames"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_keys_shared
|
|
length: 1
|
|
magic: 1
|
|
- key: "assign"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_assign
|
|
length: 2
|
|
varargs: true
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "create"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_create
|
|
length: 2
|
|
- key: "defineProperty"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_define_property
|
|
length: 3
|
|
magic: 0
|
|
- key: "defineProperties"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_define_properties
|
|
length: 2
|
|
- key: "seal"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_seal_freeze_shared
|
|
length: 1
|
|
magic: 0
|
|
- key: "freeze"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_seal_freeze_shared
|
|
length: 1
|
|
magic: 1
|
|
- key: "preventExtensions"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_prevent_extensions
|
|
length: 1
|
|
magic: 0
|
|
- key: "isSealed"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_is_sealed_frozen_shared
|
|
length: 1
|
|
magic: 0
|
|
- key: "isFrozen"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_is_sealed_frozen_shared
|
|
length: 1
|
|
magic: 1
|
|
- key: "isExtensible"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_is_extensible
|
|
length: 1
|
|
magic: 0
|
|
- key: "keys"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_keys_shared
|
|
length: 1
|
|
magic: 0
|
|
- key: "getOwnPropertySymbols"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_keys_shared
|
|
length: 1
|
|
magic: 2
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "is"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_is
|
|
length: 2
|
|
nargs: 2
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
|
|
- id: bi_object_prototype
|
|
class: Object
|
|
# internal_prototype: null
|
|
bidx: true
|
|
# Present even when DUK_USE_OBJECT_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_object_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
- key: "__proto__"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_object_getprototype_shared
|
|
setter: duk_bi_object_setprototype_shared
|
|
getter_nargs: 0
|
|
setter_nargs: 1
|
|
getter_magic: 0
|
|
setter_magic: 0
|
|
attributes: "c" # configurable in ES2015, also V8
|
|
es6: true # also non-standard legacy
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_to_string
|
|
length: 0
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "toLocaleString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_to_locale_string
|
|
length: 0
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_value_of
|
|
length: 0
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "hasOwnProperty"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_has_own_property
|
|
length: 1
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "isPrototypeOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_is_prototype_of
|
|
length: 1
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
- key: "propertyIsEnumerable"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_property_is_enumerable
|
|
length: 1
|
|
present_if: DUK_USE_OBJECT_BUILTIN
|
|
|
|
# __defineGetter, __defineSetter__, __lookupGetter__, __lookupSetter__: ES2017 Annex B
|
|
# https://tc39.github.io/ecma262/#sec-additional-properties-of-the-object.prototype-object
|
|
|
|
- key: "__defineGetter__"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_defineaccessor
|
|
length: 2
|
|
magic: 0 # define getter
|
|
present_if: DUK_USE_ES8
|
|
- key: "__defineSetter__"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_defineaccessor
|
|
length: 2
|
|
magic: 1 # define setter
|
|
present_if: DUK_USE_ES8
|
|
- key: "__lookupGetter__"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_lookupaccessor
|
|
length: 1
|
|
magic: 0 # lookup getter
|
|
present_if: DUK_USE_ES8
|
|
- key: "__lookupSetter__"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_prototype_lookupaccessor
|
|
length: 1
|
|
magic: 1 # lookup setter
|
|
present_if: DUK_USE_ES8
|
|
|
|
- id: bi_function_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_function_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_function_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Function"
|
|
attributes: "c"
|
|
|
|
# Note, unlike other prototype objects, Function.prototype is itself
|
|
# a Function and callable. When invoked, it accepts any arguments
|
|
# and returns undefined. It cannot be called as a constructor.
|
|
# See E5 Section 15.3.4.
|
|
- id: bi_function_prototype
|
|
class: Function
|
|
internal_prototype: bi_object_prototype
|
|
native: duk_bi_function_prototype
|
|
callable: true
|
|
constructable: false
|
|
bidx: true
|
|
nargs: 0 # given explicitly because .length is optional
|
|
# Present even when DUK_USE_FUNCTION_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_function_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
|
|
# In ES2015 Function.prototype.name is not writable, but is configurable.
|
|
- key: "name"
|
|
value: ""
|
|
attributes: "c"
|
|
#present_if: DUK_USE_FUNCTION_BUILTIN # Kept even when prototype is otherwise empty to guarantee a .name for functions
|
|
|
|
# test262 ch15/15.3/15.3.4/15.3.4.2/S15.3.4.2_A11 checks that Function.prototype.toString.length
|
|
# is zero, cannot find specification support for that but 0 is a good value.
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_function_prototype_to_string
|
|
length: 0
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
- key: "apply"
|
|
value:
|
|
type: function
|
|
native: duk_bi_function_prototype_apply
|
|
length: 2
|
|
magic: 1 # see duk_js_call.c
|
|
special_call: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
- key: "call"
|
|
value:
|
|
type: function
|
|
native: duk_bi_function_prototype_call
|
|
length: 1
|
|
magic: 0 # see duk_js_call.c
|
|
varargs: true
|
|
special_call: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
- key: "bind"
|
|
value:
|
|
type: function
|
|
native: duk_bi_function_prototype_bind
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_FUNCTION_BUILTIN
|
|
|
|
# ES2015
|
|
- key: # @@hasInstance
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.hasInstance"
|
|
value:
|
|
type: function
|
|
native: duk_bi_function_prototype_hasinstance
|
|
length: 1
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
# Duktape specific %NativeFunctionPrototype% which provides some getters.
|
|
#
|
|
- id: bi_native_function_prototype
|
|
class: Object
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_function_prototype
|
|
bidx: true
|
|
duktape: true
|
|
# Present even when DUK_USE_FUNCTION_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "length"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_native_function_length
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
# Setter undefined: direct write fails (defineProperty() works).
|
|
# This mimics ES2015 function (own property) .length which is
|
|
# not writable but configurable.
|
|
attributes: "c"
|
|
#present_if: DUK_USE_FUNCTION_BUILTIN # Kept to guarantee a .length for lightfuncs
|
|
- key: "name"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_native_function_name
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
# Setter undefined: direct write fails (defineProperty() works).
|
|
# This mimics ES2015 function (own property) .name which is
|
|
# not writable but configurable.
|
|
attributes: "c"
|
|
#present_if: DUK_USE_FUNCTION_BUILTIN # Kept to guarantee a .name for lightfuncs
|
|
|
|
- id: bi_array_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_array_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_array_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Array"
|
|
attributes: "c"
|
|
- key: "isArray"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_constructor_is_array
|
|
length: 1
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_array_prototype
|
|
class: Array
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
# Present even when DUK_USE_ARRAY_BUILTIN disabled.
|
|
|
|
# An array prototype is an Array itself. It has a length property initialized to 0,
|
|
# with property attributes: writable, non-configurable, non-enumerable. The attributes
|
|
# are not specified very explicitly for the prototype, but are given for Array instances
|
|
# in E5 Section 15.4.5.2 (and this matches the behavior of e.g. V8).
|
|
|
|
properties:
|
|
# With duk_harray added to the internal representation, .length is now virtual.
|
|
#- key: "length"
|
|
# value: 0
|
|
# attributes: "w"
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_array_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_to_string
|
|
length: 0
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "toLocaleString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_join_shared
|
|
length: 0
|
|
magic: 1 # magic: to_locale_string, here 1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "concat"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_concat
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "join"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_join_shared
|
|
length: 1
|
|
magic: 0 # magic: to_locale_string, here 0
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "pop"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_pop
|
|
length: 0
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "push"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_push
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "reverse"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_reverse
|
|
length: 0
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "shift"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_shift
|
|
length: 0
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "slice"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_slice
|
|
length: 2
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "sort"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_sort
|
|
length: 1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "splice"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_splice
|
|
length: 2
|
|
varargs: true
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "unshift"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_unshift
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "indexOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_indexof_shared
|
|
length: 1
|
|
varargs: true
|
|
magic: 1 # magic: idx_step = +1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "lastIndexOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_indexof_shared
|
|
length: 1
|
|
varargs: true
|
|
magic: -1 # magic: idx_step = -1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "every"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_iter_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic:
|
|
type: array_iter
|
|
funcname: "every" # BI_ARRAY_ITER_EVERY
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "some"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_iter_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic:
|
|
type: array_iter
|
|
funcname: "some" # BI_ARRAY_ITER_SOME
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "forEach"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_iter_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic:
|
|
type: array_iter
|
|
funcname: "forEach" # BI_ARRAY_ITER_FOREACH
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "map"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_iter_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic:
|
|
type: array_iter
|
|
funcname: "map" # BI_ARRAY_ITER_MAP
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "filter"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_iter_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic:
|
|
type: array_iter
|
|
funcname: filter # BI_ARRAY_ITER_FILTER
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "reduce"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_reduce_shared
|
|
length: 1
|
|
varargs: true
|
|
magic: 1 # magic: idx_step = +1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
- key: "reduceRight"
|
|
value:
|
|
type: function
|
|
native: duk_bi_array_prototype_reduce_shared
|
|
length: 1
|
|
varargs: true
|
|
magic: -1 # magic: idx_step = -1
|
|
present_if: DUK_USE_ARRAY_BUILTIN
|
|
|
|
#- key: # @@iterator
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.iterator"
|
|
# value: XXX
|
|
# es6: true
|
|
#- key: # @@unscopables
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.unscopables"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_string_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_string_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_string_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "String"
|
|
attributes: "c"
|
|
|
|
- key: "fromCharCode"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_constructor_from_char_code
|
|
length: 1
|
|
varargs: true
|
|
- key: "fromCodePoint"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_constructor_from_code_point
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_ES6
|
|
|
|
- id: bi_string_prototype
|
|
class: String
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
# Present even when DUK_USE_STRING_BUILTIN disabled.
|
|
|
|
# String prototype is a String instance and must have length value 0.
|
|
# This is supplied by the String instance virtual properties and does
|
|
# not need to be included in init data.
|
|
#
|
|
# Unlike Array.prototype.length, String.prototype.length has the default
|
|
# "length" attributes of built-in objects: non-writable, non-enumerable,
|
|
# non-configurable.
|
|
|
|
#length: 0, # omitted; non-writable, non-enumerable, non-configurable
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_string_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
|
|
# Internal empty string value. Note that this value is not writable
|
|
# which prevents a String instance's internal value also from being
|
|
# written with standard methods. The internal code creating String
|
|
# instances has no such issues.
|
|
- key:
|
|
type: symbol
|
|
variant: hidden
|
|
string: "Value"
|
|
value: ""
|
|
attributes: ""
|
|
duktape: true
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_to_string
|
|
length: 0
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_to_string # share native function, behavior is identical
|
|
length: 0
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "charAt"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_char_at
|
|
length: 1
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "charCodeAt"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_char_code_at
|
|
length: 1
|
|
magic: 0
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "codePointAt"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_char_code_at
|
|
length: 1
|
|
magic: 1
|
|
es6: true
|
|
present_if:
|
|
- DUK_USE_ES6
|
|
- DUK_USE_STRING_BUILTIN
|
|
- key: "concat"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_concat
|
|
length: 1
|
|
varargs: true
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "indexOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_indexof_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic: 0 # magic = 0 -> indexOf
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "lastIndexOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_indexof_shared
|
|
length: 1
|
|
nargs: 2
|
|
magic: 1 # magic = 1 -> lastIndexOf
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "localeCompare"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_locale_compare
|
|
length: 1
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "match"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_match
|
|
length: 1
|
|
present_if:
|
|
- DUK_USE_STRING_BUILTIN
|
|
- DUK_USE_REGEXP_SUPPORT
|
|
- key: "replace"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_replace
|
|
length: 2
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "search"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_search
|
|
length: 1
|
|
present_if:
|
|
- DUK_USE_STRING_BUILTIN
|
|
- DUK_USE_REGEXP_SUPPORT
|
|
- key: "slice"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_slice
|
|
length: 2
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "split"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_split
|
|
length: 2
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "substring"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_substring
|
|
length: 2
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "toLowerCase"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_caseconv_shared
|
|
length: 0
|
|
magic: 0 # magic = uppercase
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "toLocaleLowerCase"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_caseconv_shared
|
|
length: 0
|
|
magic: 0 # magic = uppercase; no locale specific conversion now
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "toUpperCase"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_caseconv_shared
|
|
length: 0
|
|
magic: 1 # magic = uppercase
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "toLocaleUpperCase"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_caseconv_shared
|
|
length: 0
|
|
magic: 1 # magic = uppercase; no locale specific conversion now
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "trim"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_trim
|
|
length: 0
|
|
present_if: DUK_USE_STRING_BUILTIN
|
|
- key: "repeat"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_repeat
|
|
length: 1
|
|
nargs: 1
|
|
present_if:
|
|
- DUK_USE_ES6
|
|
- DUK_USE_STRING_BUILTIN
|
|
- key: "startsWith"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_startswith_endswith
|
|
length: 1
|
|
nargs: 2
|
|
magic: 0 # 0=startsWith
|
|
present_if:
|
|
- DUK_USE_ES6
|
|
- DUK_USE_STRING_BUILTIN
|
|
- key: "endsWith"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_startswith_endswith
|
|
length: 1
|
|
nargs: 2
|
|
magic: 1 # 1=endsWith
|
|
present_if:
|
|
- DUK_USE_ES6
|
|
- DUK_USE_STRING_BUILTIN
|
|
- key: "includes"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_includes
|
|
length: 1
|
|
nargs: 2
|
|
present_if:
|
|
- DUK_USE_ES6
|
|
- DUK_USE_STRING_BUILTIN
|
|
|
|
# Non-standard extension: E5 Section B.2.3
|
|
|
|
- key: "substr"
|
|
value:
|
|
type: function
|
|
native: duk_bi_string_prototype_substr
|
|
length: 2
|
|
section_b: true
|
|
present_if:
|
|
- DUK_USE_STRING_BUILTIN
|
|
- DUK_USE_SECTION_B
|
|
|
|
#- key: # @@iterator
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.iterator"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_boolean_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_boolean_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_BOOLEAN_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_boolean_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Boolean"
|
|
attributes: "c"
|
|
|
|
- id: bi_boolean_prototype
|
|
class: Boolean
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
# Present even when DUK_USE_BOOLEAN_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_boolean_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_BOOLEAN_BUILTIN
|
|
|
|
# Internal false boolean value. Note that this value is not writable
|
|
# which prevents a Boolean instance's internal value also from being
|
|
# written with standard methods. The internal code creating Boolean
|
|
# instances has no such issues.
|
|
- key:
|
|
type: symbol
|
|
variant: hidden
|
|
string: "Value"
|
|
value: false
|
|
attributes: ""
|
|
duktape: true
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_boolean_prototype_tostring_shared
|
|
length: 0
|
|
magic: 1 # magic = coerce_tostring
|
|
present_if: DUK_USE_BOOLEAN_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_boolean_prototype_tostring_shared
|
|
length: 0
|
|
magic: 0 # magic = coerce_tostring
|
|
present_if: DUK_USE_BOOLEAN_BUILTIN
|
|
|
|
- id: bi_number_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_number_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_number_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Number"
|
|
attributes: "c"
|
|
- key: "MAX_VALUE"
|
|
value:
|
|
type: double
|
|
bytes: "7fefffffffffffff" # DBL_MAX_DOUBLE
|
|
attributes: ""
|
|
- key: "MIN_VALUE"
|
|
value:
|
|
type: double
|
|
bytes: "0000000000000001" # DBL_MIN_DOUBLE
|
|
attributes: ""
|
|
- key: "NaN"
|
|
value:
|
|
type: double
|
|
bytes: "7ff8000000000000" # DBL_NAN
|
|
attributes: ""
|
|
- key: "POSITIVE_INFINITY"
|
|
value:
|
|
type: double
|
|
bytes: "7ff0000000000000" # DBL_POSITIVE_INFINITY
|
|
attributes: ""
|
|
- key: "NEGATIVE_INFINITY"
|
|
value:
|
|
type: double
|
|
bytes: "fff0000000000000" # DBL_NEGATIVE_INFINITY
|
|
attributes: ""
|
|
- key: "EPSILON"
|
|
value:
|
|
type: double
|
|
bytes: "3cb0000000000000" # 3ff0000000000001 - 3ff0000000000000 = 3cb0000000000000
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "MAX_SAFE_INTEGER"
|
|
value:
|
|
# >>> struct.pack('>d', 9007199254740991.0).encode('hex')
|
|
# '433fffffffffffff'
|
|
type: double
|
|
bytes: "433fffffffffffff"
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "MIN_SAFE_INTEGER"
|
|
value:
|
|
# >>> struct.pack('>d', -9007199254740991.0).encode('hex')
|
|
# 'c33fffffffffffff'
|
|
type: double
|
|
bytes: "c33fffffffffffff"
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
|
|
- key: "isFinite"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_check_shared
|
|
length: 1
|
|
magic: 0
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "isInteger"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_check_shared
|
|
length: 1
|
|
magic: 1
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "isNaN"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_check_shared
|
|
length: 1
|
|
magic: 2
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "isSafeInteger"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_check_shared
|
|
length: 1
|
|
magic: 3
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "parseInt" # Must map to the exactly same object as global parseInt()
|
|
value:
|
|
type: object
|
|
id: bi_parse_int
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "parseFloat" # Must map to the exactly same object as global parseFloat()
|
|
value:
|
|
type: object
|
|
id: bi_parse_float
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
|
|
- id: bi_number_prototype
|
|
class: Number
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
# Present even when DUK_USE_NUMBER_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_number_constructor
|
|
attributes: "wc"
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
|
|
# Internal 0.0 number value. Note that this value is not writable
|
|
# which prevents a Number instance's internal value also from being
|
|
# written with standard methods. The internal code creating Number
|
|
# instances has no such issues.
|
|
#
|
|
# Number.prototype is a Number itself in ES5.1 and ES2016+. It was
|
|
# briefly made a non-Number in ES2015 but this change was reverted
|
|
# in ES2016.
|
|
- key:
|
|
type: symbol
|
|
variant: hidden
|
|
string: "Value"
|
|
value: 0.0
|
|
attributes: ""
|
|
duktape: true
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_to_string
|
|
length: 1
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "toLocaleString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_to_locale_string
|
|
length: 1
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_value_of
|
|
length: 0
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "toFixed"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_to_fixed
|
|
length: 1
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "toExponential"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_to_exponential
|
|
length: 1
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
- key: "toPrecision"
|
|
value:
|
|
type: function
|
|
native: duk_bi_number_prototype_to_precision
|
|
length: 1
|
|
present_if: DUK_USE_NUMBER_BUILTIN
|
|
|
|
- id: bi_date_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_date_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_DATE_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 7
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_date_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Date"
|
|
attributes: "c"
|
|
|
|
- key: "parse"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_constructor_parse
|
|
length: 1
|
|
- key: "UTC"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_constructor_utc
|
|
length: 7
|
|
varargs: true
|
|
- key: "now"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_constructor_now
|
|
length: 0
|
|
|
|
- id: bi_date_prototype
|
|
class: Date
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
present_if: DUK_USE_DATE_BUILTIN
|
|
|
|
# The Date prototype is an instance of Date with [[PrimitiveValue]] NaN.
|
|
#
|
|
# Setters with optional arguments must be varargs functions because
|
|
# they must detect the number of parameters actually given (cannot
|
|
# assume parameters not given are undefined).
|
|
#
|
|
# Date.prototype.valueOf() and Date.prototype.getTime() have identical
|
|
# behavior so they share the same C function, but have different
|
|
# function instances.
|
|
#
|
|
# Getters, setters, and string conversion functions use shared native
|
|
# helpers and the function "magic" value is used to pass flags and
|
|
# parameters to the helpers.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_date_constructor
|
|
attributes: "wc"
|
|
|
|
# Internal date value (E5 Section 15.9.5).
|
|
#
|
|
# Note: the value is writable, as you can e.g. do the following (V8):
|
|
# > Date.prototype.toString()
|
|
# "Invalid Date"
|
|
# > Date.prototype.setYear(2010)
|
|
# 1262296800000
|
|
# > Date.prototype.toString()
|
|
# "Fri Jan 01 2010 00:00:00 GMT+0200 (EET)"
|
|
|
|
- key:
|
|
type: symbol
|
|
variant: hidden
|
|
string: "Value"
|
|
value:
|
|
type: double
|
|
bytes: "7ff8000000000000" # DBL_NAN
|
|
attributes: "w"
|
|
duktape: true
|
|
|
|
# NOTE: The magic values for Date prototype are special. The actual control
|
|
# flags needed for the built-ins don't fit into LIGHTFUNC magic field, so
|
|
# the values here are indices to duk__date_magics[] in duk_bi_date.c which
|
|
# contains the actual control flags. Magic values here must be kept in strict
|
|
# sync with duk_bi_date.c!
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 0
|
|
- key: "toDateString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 1
|
|
- key: "toTimeString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 2
|
|
- key: "toLocaleString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 3
|
|
- key: "toLocaleDateString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 4
|
|
- key: "toLocaleTimeString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 5
|
|
- key: "toUTCString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 6
|
|
- key: "toISOString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 7
|
|
- key: "toJSON"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_to_json
|
|
length: 1
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_value_of
|
|
length: 0
|
|
- key: "getTime"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_value_of # Native function shared on purpose
|
|
length: 0
|
|
- key: "getFullYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 8
|
|
- key: "getUTCFullYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 9
|
|
- key: "getMonth"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 10
|
|
- key: "getUTCMonth"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 11
|
|
- key: "getDate"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 12
|
|
- key: "getUTCDate"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 13
|
|
- key: "getDay"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 14
|
|
- key: "getUTCDay"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 15
|
|
- key: "getHours"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 16
|
|
- key: "getUTCHours"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 17
|
|
- key: "getMinutes"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 18
|
|
- key: "getUTCMinutes"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 19
|
|
- key: "getSeconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 20
|
|
- key: "getUTCSeconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 21
|
|
- key: "getMilliseconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 22
|
|
- key: "getUTCMilliseconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 23
|
|
- key: "getTimezoneOffset"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_timezone_offset
|
|
length: 0
|
|
- key: "setTime"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_time
|
|
length: 1
|
|
- key: "setMilliseconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 1
|
|
magic: 24
|
|
- key: "setUTCMilliseconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 1
|
|
magic: 25
|
|
- key: "setSeconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 2
|
|
varargs: true
|
|
magic: 26
|
|
- key: "setUTCSeconds"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 2
|
|
varargs: true
|
|
magic: 27
|
|
- key: "setMinutes"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 3
|
|
varargs: true
|
|
magic: 28
|
|
- key: "setUTCMinutes"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 3
|
|
varargs: true
|
|
magic: 29
|
|
- key: "setHours"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 4
|
|
varargs: true
|
|
magic: 30
|
|
- key: "setUTCHours"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 4
|
|
varargs: true
|
|
magic: 31
|
|
- key: "setDate"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 1
|
|
magic: 32
|
|
- key: "setUTCDate"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 1
|
|
magic: 33
|
|
- key: "setMonth"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 2
|
|
varargs: true
|
|
magic: 34
|
|
- key: "setUTCMonth"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 2
|
|
varargs: true
|
|
magic: 35
|
|
- key: "setFullYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 3
|
|
varargs: true
|
|
magic: 36
|
|
- key: "setUTCFullYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 3
|
|
varargs: true
|
|
magic: 37
|
|
# Note: toGMTString() is required to initially be the same Function
|
|
# object as the initial Date.prototype.toUTCString. In other words
|
|
# the following must compare true:
|
|
#
|
|
# Date.prototype.toGMTString === Date.prototype.toUTCString.
|
|
#
|
|
# This is currently handled using a small tweak in duk_hthread_builtins.c
|
|
# (for RAM objects) and genbuiltins.py (for ROM objects).
|
|
#
|
|
# Note that while Smjs respects the requirement in E5 Section B.2.6,
|
|
# V8 does not.
|
|
- key: "toGMTString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_tostring_shared
|
|
length: 0
|
|
magic: 6
|
|
section_b: true
|
|
|
|
# Non-standard extensions: E5 Section B.2.4, B.2.5, B.2.6
|
|
#
|
|
# "length" values are not given explicitly but follows the general rule.
|
|
# The lengths below agree with V8.
|
|
|
|
- key: "getYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_get_shared
|
|
length: 0
|
|
magic: 38
|
|
section_b: true
|
|
- key: "setYear"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_set_shared
|
|
length: 1
|
|
magic: 39
|
|
section_b: true
|
|
|
|
- key: # @@toPrimitive
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toPrimitive"
|
|
value:
|
|
type: function
|
|
native: duk_bi_date_prototype_toprimitive
|
|
length: 1
|
|
name: "[Symbol.toPrimitive]"
|
|
attributes: "c"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
- id: bi_regexp_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_regexp_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: true
|
|
present_if: DUK_USE_REGEXP_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 2
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_regexp_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "RegExp"
|
|
attributes: "c"
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_regexp_prototype
|
|
class: Object # Object in ES2015; RegExp in ES5
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
present_if: DUK_USE_REGEXP_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_regexp_constructor
|
|
attributes: "wc"
|
|
|
|
# In ES2015 RegExp.prototype is no longer a RegExp instance.
|
|
|
|
# "lastIndex" is writable, even in the RegExp.prototype object.
|
|
# This matches at least V8.
|
|
- key: "lastIndex"
|
|
value: 0
|
|
attributes: "w"
|
|
|
|
- key: "exec"
|
|
value:
|
|
type: function
|
|
native: duk_bi_regexp_prototype_exec
|
|
length: 1
|
|
- key: "test"
|
|
value:
|
|
type: function
|
|
native: duk_bi_regexp_prototype_test
|
|
length: 1
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_regexp_prototype_tostring
|
|
length: 0
|
|
|
|
# In ES2015 .source, .global, .ignoreCase, etc are accessors.
|
|
# .flags is ES2015 but must be present because the constructor now
|
|
# relies on its presence for e.g. new RegExp(/foo/gim).
|
|
|
|
- key: "flags"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_regexp_prototype_flags
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
# setter undefined
|
|
attributes: "c"
|
|
es6: true
|
|
|
|
- key: "source"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_regexp_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 16 # default case in shared getter (value quite arbitrary)
|
|
# setter undefined
|
|
attributes: "c"
|
|
- key: "global"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_regexp_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
# setter undefined
|
|
attributes: "c"
|
|
- key: "ignoreCase"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_regexp_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 1
|
|
# setter undefined
|
|
attributes: "c"
|
|
- key: "multiline"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_regexp_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 2
|
|
# setter undefined
|
|
attributes: "c"
|
|
# .sticky and .unicode commented out; don't provide until implemented
|
|
# to avoid interfering with application feature detection code
|
|
#- key: "sticky"
|
|
# value:
|
|
# type: accessor
|
|
# getter: duk_bi_regexp_prototype_shared_getter
|
|
# getter_nargs: 0
|
|
# getter_magic: 3
|
|
# # setter undefined
|
|
# attributes: "c"
|
|
# es6: true
|
|
# present_if: DUK_USE_ES6
|
|
#- key: "unicode"
|
|
# value:
|
|
# type: accessor
|
|
# getter: duk_bi_regexp_prototype_shared_getter
|
|
# getter_nargs: 0
|
|
# getter_magic: 4
|
|
# # setter undefined
|
|
# attributes: "c"
|
|
# es6: true
|
|
# present_if: DUK_USE_ES6
|
|
|
|
#- key: # @@match
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.match"
|
|
# value: XXX
|
|
# es6: true
|
|
#- key: # @@replace
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.replace"
|
|
# value: XXX
|
|
# es6: true
|
|
#- key: # @@search
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.search"
|
|
# value: XXX
|
|
# es6: true
|
|
#- key: # @@split
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.split"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "Error"
|
|
attributes: "c"
|
|
|
|
- id: bi_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_object_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_error_constructor
|
|
attributes: "wc"
|
|
|
|
# Standard properties; property attributes:
|
|
#
|
|
# "message" is writable and deletable. This matches the default
|
|
# attributes of "wc". V8 and Smjs both match this.
|
|
#
|
|
# "name" is writable and deletable. This matches the default
|
|
# attributes too. Smjs behaves like this, but in V8 "name" is
|
|
# non-writable:
|
|
#
|
|
# > Object.getOwnPropertyDescriptor(Error.prototype, "name")
|
|
# { value: "Error",
|
|
# writable: false,
|
|
# enumerable: false,
|
|
# configurable: false }
|
|
#
|
|
# We go with the standard attributes ("wc").
|
|
|
|
- key: "name"
|
|
value: "Error"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
# Custom properties
|
|
|
|
- key: "stack"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_error_prototype_stack_getter
|
|
setter: duk_bi_error_prototype_stack_setter
|
|
getter_nargs: 0
|
|
setter_nargs: 1
|
|
getter_magic: 0
|
|
setter_magic: 0
|
|
attributes: "c"
|
|
duktape: true
|
|
- key: "fileName"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_error_prototype_filename_getter
|
|
setter: duk_bi_error_prototype_filename_setter
|
|
getter_nargs: 0
|
|
setter_nargs: 1
|
|
getter_magic: 0
|
|
setter_magic: 0
|
|
attributes: "c"
|
|
duktape: true
|
|
- key: "lineNumber"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_error_prototype_linenumber_getter
|
|
setter: duk_bi_error_prototype_linenumber_setter
|
|
getter_nargs: 0
|
|
setter_nargs: 1
|
|
getter_magic: 0
|
|
setter_magic: 0
|
|
attributes: "c"
|
|
duktape: true
|
|
# XXX: columnNumber
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_error_prototype_to_string
|
|
length: 0
|
|
|
|
# NOTE: Error subclass prototypes have an empty "message" property, even
|
|
# though one is inherited already from Error prototype (E5 Section 15.11.7.10).
|
|
#
|
|
# V8 does not respect this: Error subclasses ("native Errors" in E5 spec)
|
|
# do not have a "message" property at all. Also, in V8 their "name" property
|
|
# is not writable and configurable as E5 requires.
|
|
|
|
- id: bi_eval_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_eval_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_eval_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "EvalError"
|
|
attributes: "c"
|
|
|
|
- id: bi_eval_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_eval_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "EvalError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_range_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_range_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_range_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "RangeError"
|
|
attributes: "c"
|
|
|
|
- id: bi_range_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_range_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "RangeError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_reference_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_reference_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_reference_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "ReferenceError"
|
|
attributes: "c"
|
|
|
|
- id: bi_reference_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_reference_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "ReferenceError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_syntax_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_syntax_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_syntax_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "SyntaxError"
|
|
attributes: "c"
|
|
|
|
- id: bi_syntax_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_syntax_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "SyntaxError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_type_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_type_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_type_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "TypeError"
|
|
attributes: "c"
|
|
|
|
- id: bi_type_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_type_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "TypeError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_uri_error_constructor
|
|
class: Function
|
|
internal_prototype: bi_error_constructor
|
|
native: duk_bi_error_constructor_shared
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: bidx
|
|
id: bi_uri_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_uri_error_prototype
|
|
attributes: ""
|
|
- key: "name"
|
|
value: "URIError"
|
|
attributes: "c"
|
|
|
|
- id: bi_uri_error_prototype
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_uri_error_constructor
|
|
attributes: "wc"
|
|
- key: "name"
|
|
value: "URIError"
|
|
- key: "message"
|
|
value: ""
|
|
|
|
- id: bi_math
|
|
class: Math
|
|
internal_prototype: bi_object_prototype
|
|
bidx: false
|
|
present_if: DUK_USE_MATH_BUILTIN
|
|
|
|
# apparently no external "prototype" property
|
|
# apparently no external "constructor" property
|
|
|
|
properties:
|
|
- key: "E"
|
|
value:
|
|
type: double
|
|
bytes: "4005bf0a8b145769" # DBL_E
|
|
attributes: ""
|
|
- key: "LN10"
|
|
value:
|
|
type: double
|
|
bytes: "40026bb1bbb55516" # DBL_LN10
|
|
attributes: ""
|
|
- key: "LN2"
|
|
value:
|
|
type: double
|
|
bytes: "3fe62e42fefa39ef" # DBL_LN2
|
|
attributes: ""
|
|
- key: "LOG2E"
|
|
value:
|
|
type: double
|
|
bytes: "3ff71547652b82fe" # DBL_LOG2E
|
|
attributes: ""
|
|
- key: "LOG10E"
|
|
value:
|
|
type: double
|
|
bytes: "3fdbcb7b1526e50e" # DBL_LOG10E
|
|
attributes: ""
|
|
- key: "PI"
|
|
value:
|
|
type: double
|
|
bytes: "400921fb54442d18" # DBL_PI
|
|
attributes: ""
|
|
- key: "SQRT1_2"
|
|
value:
|
|
type: double
|
|
bytes: "3fe6a09e667f3bcd" # DBL_SQRT1_2
|
|
attributes: ""
|
|
- key: "SQRT2"
|
|
value:
|
|
type: double
|
|
bytes: "3ff6a09e667f3bcd" # DBL_SQRT2
|
|
attributes: ""
|
|
|
|
- key: "abs"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "fabs"
|
|
- key: "acos"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "acos"
|
|
- key: "asin"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "asin"
|
|
- key: "atan"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "atan"
|
|
- key: "atan2"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_twoarg_shared
|
|
length: 2
|
|
magic:
|
|
type: math_twoarg
|
|
funcname: "atan2"
|
|
- key: "cbrt"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "cbrt"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "ceil"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "ceil"
|
|
- key: "clz32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_clz32
|
|
length: 1
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "cos"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "cos"
|
|
- key: "exp"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "exp"
|
|
- key: "floor"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "floor"
|
|
- key: "hypot"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_hypot
|
|
length: 2
|
|
varargs: true
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "imul"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_imul
|
|
length: 2
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "log"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "log"
|
|
- key: "log2"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "log2"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "log10"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "log10"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "max"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_max
|
|
length: 2
|
|
varargs: true
|
|
- key: "min"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_min
|
|
length: 2
|
|
varargs: true
|
|
- key: "pow"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_twoarg_shared
|
|
length: 2
|
|
magic:
|
|
type: math_twoarg
|
|
funcname: "pow"
|
|
- key: "random"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_random
|
|
length: 0
|
|
- key: "round"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "round"
|
|
- key: "sign"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_sign
|
|
length: 1
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key: "sin"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "sin"
|
|
- key: "sqrt"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "sqrt"
|
|
- key: "tan"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "tan"
|
|
- key: "trunc"
|
|
value:
|
|
type: function
|
|
native: duk_bi_math_object_onearg_shared
|
|
length: 1
|
|
magic:
|
|
type: math_onearg
|
|
funcname: "trunc"
|
|
es6: true
|
|
present_if: DUK_USE_ES6
|
|
- key:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toStringTag"
|
|
value: "Math"
|
|
attributes: "c"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
- id: bi_json
|
|
class: JSON
|
|
internal_prototype: bi_object_prototype
|
|
bidx: false
|
|
present_if:
|
|
- DUK_USE_JSON_BUILTIN
|
|
- DUK_USE_JSON_SUPPORT
|
|
|
|
# apparently no external "prototype" property
|
|
# apparently no external "constructor" property
|
|
|
|
properties:
|
|
- key: "parse"
|
|
value:
|
|
type: function
|
|
native: duk_bi_json_object_parse
|
|
length: 2
|
|
- key: "stringify"
|
|
value:
|
|
type: function
|
|
native: duk_bi_json_object_stringify
|
|
length: 3
|
|
|
|
#- key: # @@toStringTag
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.toStringTag"
|
|
# value: XXX
|
|
# es6: true
|
|
# present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
# E5 Section 13.2.3
|
|
- id: bi_type_error_thrower
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_type_error_thrower
|
|
callable: true
|
|
constructable: false # This is not clearly specified, but [[Construct]] is not set in E5 Section 13.2.3.
|
|
bidx: true
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
# Custom name, matches V8; ES2016 describes %ThrowTypeError% as being
|
|
# anonymous.
|
|
- key: "name"
|
|
value: "ThrowTypeError"
|
|
attributes: "c"
|
|
duktape: true
|
|
|
|
#
|
|
# Duktape-specific built-ins
|
|
#
|
|
|
|
- id: bi_duktape
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
duktape: true
|
|
bidx: true
|
|
#present_if: DUK_USE_DUKTAPE_BUILTIN # Present even when properties disabled, error augmentation relies on it
|
|
|
|
# There are a few properties not listed here:
|
|
# - "version" is added from parameter file automatically.
|
|
# - "env" is added dynamically at runtime.
|
|
|
|
properties:
|
|
- key: "Pointer"
|
|
value:
|
|
type: object
|
|
id: bi_pointer_constructor
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "Thread"
|
|
value:
|
|
type: object
|
|
id: bi_thread_constructor
|
|
duktape: true
|
|
present_if:
|
|
- DUK_USE_COROUTINE_SUPPORT
|
|
- DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "info"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_info
|
|
length: 1
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "act"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_act
|
|
length: 1
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "gc"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_gc
|
|
length: 1
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "fin"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_fin
|
|
length: 0
|
|
varargs: true
|
|
duktape: true
|
|
present_if:
|
|
- DUK_USE_FINALIZER_SUPPORT
|
|
- DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "enc"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_enc
|
|
length: 0
|
|
varargs: true
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "dec"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_dec
|
|
length: 0
|
|
varargs: true
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "compact"
|
|
value:
|
|
type: function
|
|
native: duk_bi_duktape_object_compact
|
|
length: 1
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
|
|
- id: bi_thread_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_thread_constructor
|
|
callable: true
|
|
constructable: true
|
|
duktape: true
|
|
bidx: false
|
|
present_if: DUK_USE_COROUTINE_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
duktape: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_thread_prototype
|
|
attributes: ""
|
|
duktape: true
|
|
- key: "name"
|
|
value: "Thread"
|
|
attributes: "c"
|
|
duktape: true
|
|
|
|
# "yield" is a reserved word but does not prevent its use as a property name
|
|
- key: "yield"
|
|
value:
|
|
type: function
|
|
native: duk_bi_thread_yield
|
|
length: 2
|
|
duktape: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
present_if: DUK_USE_COROUTINE_SUPPORT
|
|
- key: "resume"
|
|
value:
|
|
type: function
|
|
native: duk_bi_thread_resume
|
|
length: 3
|
|
duktape: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
present_if: DUK_USE_COROUTINE_SUPPORT
|
|
- key: "current"
|
|
value:
|
|
type: function
|
|
native: duk_bi_thread_current
|
|
length: 0
|
|
duktape: true
|
|
present_if: DUK_USE_COROUTINE_SUPPORT
|
|
|
|
- id: bi_thread_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
duktape: true
|
|
bidx: true
|
|
# Present even when DUK_USE_DUKTAPE_BUILTIN disabled.
|
|
|
|
# Must be present even if coroutines are disabled for inheritance.
|
|
# Because Duktape.Thread.prototype is missing, the only way to access
|
|
# the prototype to e.g. add methods is to look it up from a thread
|
|
# instance.
|
|
|
|
# Note: we don't keep up with the E5 convention that prototype objects
|
|
# are some faux instances of their type (e.g. Date.prototype is a Date
|
|
# instance).
|
|
#
|
|
# Also, we don't currently have a "constructor" property because there is
|
|
# no explicit constructor object.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_thread_constructor
|
|
attributes: "wc"
|
|
duktape: true
|
|
present_if:
|
|
- DUK_USE_COROUTINE_SUPPORT
|
|
- DUK_USE_DUKTAPE_BUILTIN
|
|
|
|
# toString() and valueOf() are inherited from Object.prototype
|
|
|
|
- id: bi_pointer_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: true
|
|
native: duk_bi_pointer_constructor
|
|
callable: true
|
|
constructable: true
|
|
duktape: true
|
|
bidx: false
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
duktape: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_pointer_prototype
|
|
attributes: ""
|
|
duktape: true
|
|
- key: "name"
|
|
value: "Pointer"
|
|
attributes: "c"
|
|
duktape: true
|
|
|
|
- id: bi_pointer_prototype
|
|
class: Pointer
|
|
internal_prototype: bi_object_prototype
|
|
duktape: true
|
|
bidx: true
|
|
# Present even when DUK_USE_DUKTAPE_BUILTIN disabled.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_pointer_constructor
|
|
attributes: "wc"
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_pointer_prototype_tostring_shared
|
|
length: 0
|
|
magic: 1 # magic = to_string
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_pointer_prototype_tostring_shared
|
|
length: 0
|
|
magic: 0 # magic = to_string
|
|
duktape: true
|
|
present_if: DUK_USE_DUKTAPE_BUILTIN
|
|
|
|
# This is an Error *instance* used to avoid allocation when a "double error" occurs.
|
|
# The object is "frozen and sealed" to avoid code accidentally modifying the instance.
|
|
# This is important because the error is rethrown as is.
|
|
|
|
- id: bi_double_error
|
|
class: Error
|
|
internal_prototype: bi_error_prototype
|
|
extensible: false
|
|
duktape: true
|
|
bidx: true
|
|
|
|
# Note: this is the only non-extensible built-in, so there is special
|
|
# post-tweak in duk_hthread_builtins.c to handle this.
|
|
|
|
properties:
|
|
- key: "name"
|
|
value: "DoubleError"
|
|
attributes: ""
|
|
duktape: true
|
|
- key: "message"
|
|
value: "error in error handling"
|
|
attributes: ""
|
|
duktape: true
|
|
|
|
#
|
|
# ES2015
|
|
#
|
|
|
|
- id: bi_proxy_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
# no external prototype
|
|
native: duk_bi_proxy_constructor
|
|
callable: true
|
|
constructable: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_ES6_PROXY
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 2
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "name"
|
|
value: "Proxy"
|
|
attributes: "c"
|
|
es6: true
|
|
#- key: "revocable"
|
|
# value:
|
|
# type: function
|
|
# native: duk_bi_proxy_constructor_revocable
|
|
# length: 2
|
|
# es6: true
|
|
|
|
- id: bi_reflect
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
bidx: false
|
|
present_if: DUK_USE_REFLECT_BUILTIN
|
|
|
|
properties:
|
|
- key: "apply"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_apply
|
|
length: 3
|
|
magic: 2 # see duk_js_call.c
|
|
special_call: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
es6: true
|
|
- key: "construct"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_construct
|
|
length: 2
|
|
magic: 3 # see duk_js_call.c
|
|
special_call: true
|
|
auto_lightfunc: false # automatic lightfunc conversion clashes with internal implementation
|
|
es6: true
|
|
- key: "defineProperty"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_define_property
|
|
length: 3
|
|
magic: 1
|
|
es6: true
|
|
- key: "deleteProperty"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_object_delete_property
|
|
length: 2
|
|
es6: true
|
|
- key: "get"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_object_get
|
|
length: 2
|
|
varargs: true
|
|
es6: true
|
|
- key: "getOwnPropertyDescriptor"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_get_own_property_descriptor
|
|
length: 2
|
|
magic: 1
|
|
es6: true
|
|
- key: "getPrototypeOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_getprototype_shared
|
|
length: 1
|
|
magic: 2
|
|
es6: true
|
|
- key: "has"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_object_has
|
|
length: 2
|
|
es6: true
|
|
- key: "isExtensible"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_is_extensible
|
|
length: 1
|
|
magic: 1
|
|
es6: true
|
|
- key: "ownKeys"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_keys_shared
|
|
length: 1
|
|
magic: 3
|
|
es6: true
|
|
- key: "preventExtensions"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_constructor_prevent_extensions
|
|
length: 1
|
|
magic: 1
|
|
es6: true
|
|
- key: "set"
|
|
value:
|
|
type: function
|
|
native: duk_bi_reflect_object_set
|
|
length: 3
|
|
varargs: true
|
|
es6: true
|
|
- key: "setPrototypeOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_object_setprototype_shared
|
|
length: 2
|
|
magic: 2
|
|
es6: true
|
|
|
|
- id: bi_symbol_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_symbol_constructor_shared
|
|
callable: true
|
|
constructable: false # new Symbol() not allowed
|
|
es6: true
|
|
nargs: 1
|
|
magic: 0
|
|
bidx: false
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "name"
|
|
value: "Symbol"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_symbol_prototype
|
|
attributes: ""
|
|
es6: true
|
|
|
|
- key: "for"
|
|
value:
|
|
type: function
|
|
native: duk_bi_symbol_constructor_shared
|
|
magic: 1
|
|
length: 1
|
|
nargs: 1
|
|
attributes: "wc"
|
|
es6: true
|
|
- key: "keyFor"
|
|
value:
|
|
type: function
|
|
native: duk_bi_symbol_key_for
|
|
length: 1
|
|
nargs: 1
|
|
attributes: "wc"
|
|
es6: true
|
|
|
|
- key: "hasInstance"
|
|
value:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.hasInstance"
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
- key: "isConcatSpreadable"
|
|
value:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.isConcatSpreadable"
|
|
attributes: ""
|
|
es6: true
|
|
- key: "iterator"
|
|
value:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.iterator"
|
|
attributes: ""
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
#- key: "match"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.match"
|
|
# attributes: ""
|
|
# es6: true
|
|
#- key: "replace"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.replace"
|
|
# attributes: ""
|
|
# es6: true
|
|
#- key: "search"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.search"
|
|
# attributes: ""
|
|
# es6: true
|
|
#- key: "species"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# attributes: ""
|
|
# es6: true
|
|
#- key: "split"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.split"
|
|
# attributes: ""
|
|
# es6: true
|
|
- key: "toPrimitive"
|
|
value:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toPrimitive"
|
|
attributes: ""
|
|
es6: true
|
|
- key: "toStringTag"
|
|
value:
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toStringTag"
|
|
attributes: ""
|
|
es6: true
|
|
#- key: "unscopables"
|
|
# value:
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.unscopables"
|
|
# attributes: ""
|
|
# es6: true
|
|
|
|
- id: bi_symbol_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
es6: true
|
|
bidx: true
|
|
# Present even when DUK_USE_SYMBOL_BUILTIN disabled so that symbol values
|
|
# created from C code can inherit through the Symbol prototype.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_symbol_constructor
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_symbol_tostring_shared
|
|
nargs: 0
|
|
magic: 0
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
- key: "valueOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_symbol_tostring_shared
|
|
nargs: 0
|
|
magic: 1
|
|
attributes: "wc"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
- key: # @@toPrimitive
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toPrimitive"
|
|
value:
|
|
type: function
|
|
native: duk_bi_symbol_toprimitive
|
|
nargs: 0 # hint is ignored
|
|
length: 0
|
|
name: "[Symbol.toPrimitive]"
|
|
attributes: "c"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
- key: # @@toStringTag
|
|
type: symbol
|
|
variant: wellknown
|
|
string: "Symbol.toStringTag"
|
|
value: "Symbol"
|
|
attributes: "c"
|
|
es6: true
|
|
present_if: DUK_USE_SYMBOL_BUILTIN
|
|
|
|
- id: bi_promise_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
native: duk_bi_promise_constructor
|
|
callable: true
|
|
constructable: true
|
|
es6: true
|
|
nargs: 1
|
|
magic: 0
|
|
bidx: false
|
|
present_if: DUK_USE_PROMISE_BUILTIN
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "name"
|
|
value: "Promise"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: 'prototype'
|
|
value:
|
|
type: object
|
|
id: bi_promise_prototype
|
|
attributes: ""
|
|
es6: true
|
|
- key: 'all'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_all
|
|
length: 1
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
- key: 'race'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_race
|
|
length: 1
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
- key: 'reject'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_reject
|
|
length: 1
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
- key: 'resolve'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_resolve
|
|
length: 1
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
# @@species
|
|
# 'defer' is obsolete and not implemented:
|
|
# https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred.
|
|
# 'accept' is obsolete and not implemented:
|
|
#https://bugs.chromium.org/p/v8/issues/detail?id=3238
|
|
# 'try': https://github.com/tc39/proposal-promise-try
|
|
|
|
- id: bi_promise_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_PROMISE_BUILTIN
|
|
|
|
properties:
|
|
- key: 'constructor'
|
|
value:
|
|
type: object
|
|
id: bi_promise_constructor
|
|
attributes: "wc"
|
|
es6: true
|
|
- key: 'catch'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_catch
|
|
length: 1
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
- key: 'then'
|
|
value:
|
|
type: function
|
|
native: duk_bi_promise_then
|
|
length: 2
|
|
varargs: false
|
|
attributes: 'wc'
|
|
es6: true
|
|
# @@toStringTag
|
|
# 'chain' is an obsolete variant of .then and not implemented:
|
|
# https://stackoverflow.com/questions/34713965/the-feature-of-method-promise-prototype-chain-in-chrome
|
|
|
|
# 'finally': https://github.com/tc39/proposal-promise-finally
|
|
|
|
#
|
|
# TypedArray
|
|
#
|
|
|
|
- id: bi_arraybuffer_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: false
|
|
native: duk_bi_arraybuffer_constructor
|
|
callable: true
|
|
constructable: true
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 1
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_arraybuffer_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "ArrayBuffer"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "isView"
|
|
value:
|
|
type: function
|
|
native: duk_bi_arraybuffer_isview
|
|
length: 1
|
|
varargs: false
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_arraybuffer_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "byteLength"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_bytelength_getter # XXX: more lenient than required by spec now
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_arraybuffer_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "slice"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_slice_shared
|
|
length: 2
|
|
varargs: false
|
|
magic: 2 # magic: 0x01=isView, 0x02=create copy, 0x04=Node.js Buffer special
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@toStringTag
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.toStringTag"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_dataview_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: false
|
|
native: duk_bi_dataview_constructor
|
|
callable: true
|
|
constructable: true
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_dataview_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "DataView"
|
|
attributes: "c"
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_dataview_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "byteLength"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_bytelength_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "byteOffset"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_byteoffset_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "buffer"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_buffer_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_dataview_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
|
|
# Int8/Uint8 get/set calls don't have a little endian argument
|
|
# but length/nargs must provide it for the shared helper anyway.
|
|
|
|
- key: "getInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "8bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getUint8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "8bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getInt16"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getUint16"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getInt32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getUint32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getFloat32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "getFloat64"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "8bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setUint8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "8bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setInt16"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setUint16"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setInt32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setUint32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setFloat32"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
- key: "setFloat64"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: true
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@toStringTag
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.toStringTag"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
# %TypedArray% constructor
|
|
# Prototype object providing properties shared by all TypedArray
|
|
# constructors. Callable, but duk_bi_typedarray_constructor()
|
|
# rejects normal calls with TypeError; not constructable which
|
|
# rejects constructor calls with TypeError.
|
|
- id: bi_typedarray_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: false
|
|
nargs: 0
|
|
magic: 0
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_typedarray_prototype
|
|
attributes: ""
|
|
es6: true
|
|
- key: "name"
|
|
value: "TypedArray"
|
|
attributes: "c"
|
|
es6: true
|
|
|
|
# .from
|
|
# .of
|
|
# @@species getter
|
|
|
|
# %TypedArrayPrototype%
|
|
# Custom prototype object providing properties shared by all TypedArray
|
|
# instances (reduces built-in object count). The view specific prototypes
|
|
# (such as Uint8Array.prototype) are still needed so that e.g. instanceof
|
|
# will work properly.
|
|
|
|
- id: bi_typedarray_prototype
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
# no external_prototype (specific views provide it)
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
# Present even when DUK_USE_BUFFEROBJECT_SUPPORT is disabled
|
|
# to support plain buffers.
|
|
|
|
properties:
|
|
- key: "byteLength"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_bytelength_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "byteOffset"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_byteoffset_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "buffer"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_typedarray_buffer_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT # missing without bufferobject support
|
|
- key: "set"
|
|
value:
|
|
type: function
|
|
native: duk_bi_typedarray_set
|
|
length: 2
|
|
varargs: false
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
- key: "subarray"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_slice_shared
|
|
length: 2
|
|
varargs: false
|
|
magic: 1 # magic: 0x01=isView, 0x02=create copy, 0x04=Node.js Buffer special
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
#- key: # @@iterator
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.iterator"
|
|
# value: XXX
|
|
# es6: true
|
|
# present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
#- key: # @@toStringTag
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.toStringTag"
|
|
# value: XXX
|
|
# es6: true
|
|
# present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
- id: bi_int8array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "int8"
|
|
shift: 0
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_int8array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Int8Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_int8array_prototype
|
|
internal_prototype: bi_typedarray_prototype
|
|
class: Object
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_int8array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_uint8array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "uint8"
|
|
shift: 0
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_uint8array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Uint8Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
# Duktape custom: allocate a plain buffer, return value is always
|
|
# a freshly allocated fixed plain buffer.
|
|
- key: "allocPlain"
|
|
value:
|
|
type: function
|
|
native: duk_bi_uint8array_allocplain
|
|
length: 1
|
|
varargs: false
|
|
duktape: true
|
|
|
|
# Duktape custom: get plain buffer underlying a buffer object.
|
|
- key: "plainOf"
|
|
value:
|
|
type: function
|
|
native: duk_bi_uint8array_plainof
|
|
length: 1
|
|
varargs: false
|
|
duktape: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_uint8array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
# Present even when DUK_USE_BUFFEROBJECT_SUPPORT is disabled
|
|
# to support plain buffers.
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_uint8array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT # missing without bufferobject support
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_uint8clampedarray_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "uint8clamped"
|
|
shift: 0
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_uint8clampedarray_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Uint8ClampedArray"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_uint8clampedarray_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_uint8clampedarray_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 1
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_int16array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "int16"
|
|
shift: 1
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_int16array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Int16Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 2
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_int16array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_int16array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 2
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_uint16array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "uint16"
|
|
shift: 1
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_uint16array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Uint16Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 2
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_uint16array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_uint16array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 2
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_int32array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "int32"
|
|
shift: 2
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_int32array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Int32Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_int32array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_int32array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_uint32array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "uint32"
|
|
shift: 2
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_uint32array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Uint32Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_uint32array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_uint32array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_float32array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "float32"
|
|
shift: 2
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_float32array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Float32Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_float32array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_float32array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 4
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
- id: bi_float64array_constructor
|
|
class: Function
|
|
internal_prototype: bi_typedarray_constructor
|
|
varargs: false
|
|
native: duk_bi_typedarray_constructor
|
|
callable: true
|
|
constructable: true
|
|
magic:
|
|
type: typedarray_constructor
|
|
elem: "float64"
|
|
shift: 3
|
|
typedarray: true
|
|
es6: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 3
|
|
attributes: "c"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_float64array_prototype
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
- key: "name"
|
|
value: "Float64Array"
|
|
attributes: "c"
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 8
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#- key: # @@species
|
|
# type: symbol
|
|
# variant: wellknown
|
|
# string: "Symbol.species"
|
|
# value: XXX
|
|
# es6: true
|
|
|
|
- id: bi_float64array_prototype
|
|
class: Object
|
|
internal_prototype: bi_typedarray_prototype
|
|
typedarray: true
|
|
es6: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_float64array_constructor
|
|
attributes: "wc"
|
|
typedarray: true
|
|
es6: true
|
|
- key: "BYTES_PER_ELEMENT"
|
|
value: 8
|
|
attributes: ""
|
|
typedarray: true
|
|
es6: true
|
|
|
|
#
|
|
# Node.js Buffer
|
|
#
|
|
|
|
- id: bi_nodejs_buffer_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
varargs: false
|
|
native: duk_bi_nodejs_buffer_constructor
|
|
callable: true
|
|
constructable: true
|
|
nodejs_buffer: true
|
|
bidx: false
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 2
|
|
attributes: "c"
|
|
nodejs_buffer: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_nodejs_buffer_prototype
|
|
attributes: ""
|
|
nodejs_buffer: true
|
|
- key: "name"
|
|
value: "Buffer"
|
|
attributes: "c"
|
|
nodejs_buffer: true
|
|
|
|
- key: "concat"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_concat
|
|
length: 2
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "isEncoding"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_is_encoding
|
|
length: 1
|
|
varargs:
|
|
nodejs_buffer: true
|
|
- key: "isBuffer"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_is_buffer
|
|
length: 1
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "byteLength"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_byte_length
|
|
length: 2
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "compare"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_compare_shared
|
|
length: 2
|
|
varargs: false
|
|
magic: 3 # magic: 0x02=static call + 0x01=compare = 0x03
|
|
nodejs_buffer: true
|
|
|
|
- id: bi_nodejs_buffer_prototype
|
|
internal_prototype: bi_uint8array_prototype
|
|
class: Object
|
|
nodejs_buffer: true
|
|
bidx: true
|
|
present_if: DUK_USE_BUFFEROBJECT_SUPPORT
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_nodejs_buffer_constructor
|
|
attributes: "wc"
|
|
nodejs_buffer: true
|
|
|
|
- key: "readUInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "8bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "8bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUInt16LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUInt16BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readInt16LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readInt16BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUInt32LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUInt32BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readInt32LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readInt32BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readFloatLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readFloatBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readDoubleLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readDoubleBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 2
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUIntLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "varint"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readUIntBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "varint"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readIntLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "varint"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "readIntBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_readfield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_readfield
|
|
elem: "varint"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "8bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeInt8"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "8bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUInt16LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUInt16BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeInt16LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeInt16BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "16bit"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUInt32LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUInt32BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeInt32LE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeInt32BE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "32bit"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeFloatLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeFloatBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "float"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeDoubleLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeDoubleBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 3
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "double"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUIntLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 4
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "varint"
|
|
signed: false
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeUIntBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 4
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "varint"
|
|
signed: false
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeIntLE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 4
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "varint"
|
|
signed: true
|
|
bigendian: false
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "writeIntBE"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_writefield
|
|
length: 4
|
|
varargs: false
|
|
magic:
|
|
type: buffer_writefield
|
|
elem: "varint"
|
|
signed: true
|
|
bigendian: true
|
|
typedarray: false
|
|
nodejs_buffer: true
|
|
- key: "toString"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_tostring
|
|
length: 3
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "toJSON"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_tojson
|
|
length: 0
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "fill"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_fill
|
|
length: 3
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "equals"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_compare_shared
|
|
length: 1
|
|
varargs: false
|
|
magic: 0 # magic = 0: equals
|
|
nodejs_buffer: true
|
|
- key: "compare"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_compare_shared
|
|
length: 1
|
|
varargs: false
|
|
magic: 1 # magic = 1: compare
|
|
nodejs_buffer: true
|
|
- key: "copy"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_copy
|
|
length: 4
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
- key: "slice"
|
|
value:
|
|
type: function
|
|
native: duk_bi_buffer_slice_shared
|
|
length: 2
|
|
varargs: false
|
|
magic: 5 # magic: 0x01=isView, 0x02=create copy, 0x04=Node.js Buffer special
|
|
nodejs_buffer: true
|
|
- key: "write"
|
|
value:
|
|
type: function
|
|
native: duk_bi_nodejs_buffer_write
|
|
length: 4
|
|
varargs: false
|
|
nodejs_buffer: true
|
|
|
|
#
|
|
# CBOR
|
|
#
|
|
|
|
- id: bi_cbor
|
|
class: Object
|
|
internal_prototype: bi_object_prototype
|
|
bidx: false
|
|
present_if: DUK_USE_CBOR_BUILTIN
|
|
|
|
properties:
|
|
- key: "encode"
|
|
value:
|
|
type: function
|
|
native: duk_bi_cbor_encode
|
|
length: 1
|
|
attributes: "wc"
|
|
- key: "decode"
|
|
value:
|
|
type: function
|
|
native: duk_bi_cbor_decode
|
|
length: 1
|
|
attributes: "wc"
|
|
|
|
#
|
|
# Encoding API
|
|
#
|
|
|
|
- id: bi_textencoder_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
nargs: 0
|
|
native: duk_bi_textencoder_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: false
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
encoding_api: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_textencoder_prototype
|
|
attributes: ""
|
|
encoding_api: true
|
|
- key: "name"
|
|
value: "TextEncoder"
|
|
attributes: "c"
|
|
encoding_api: true
|
|
|
|
- id: bi_textencoder_prototype
|
|
internal_prototype: bi_object_prototype
|
|
class: Object
|
|
bidx: false
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_textencoder_constructor
|
|
attributes: "wc"
|
|
encoding_api: true
|
|
- key: "encoding"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_textencoder_prototype_encoding_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0
|
|
attributes: "ec"
|
|
encoding_api: true
|
|
- key: "encode"
|
|
value:
|
|
type: function
|
|
native: duk_bi_textencoder_prototype_encode
|
|
length: 0
|
|
nargs: 1
|
|
attributes: "wec"
|
|
encoding_api: true
|
|
|
|
- id: bi_textdecoder_constructor
|
|
class: Function
|
|
internal_prototype: bi_function_prototype
|
|
nargs: 2
|
|
native: duk_bi_textdecoder_constructor
|
|
callable: true
|
|
constructable: true
|
|
bidx: false
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
|
|
properties:
|
|
- key: "length"
|
|
value: 0
|
|
attributes: "c"
|
|
encoding_api: true
|
|
- key: "prototype"
|
|
value:
|
|
type: object
|
|
id: bi_textdecoder_prototype
|
|
attributes: ""
|
|
encoding_api: true
|
|
- key: "name"
|
|
value: "TextDecoder"
|
|
attributes: "c"
|
|
encoding_api: true
|
|
|
|
- id: bi_textdecoder_prototype
|
|
internal_prototype: bi_object_prototype
|
|
class: Object
|
|
bidx: false
|
|
encoding_api: true
|
|
present_if: DUK_USE_ENCODING_BUILTINS
|
|
|
|
properties:
|
|
- key: "constructor"
|
|
value:
|
|
type: object
|
|
id: bi_textdecoder_constructor
|
|
attributes: "wc"
|
|
encoding_api: true
|
|
- key: "encoding"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_textdecoder_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 0 # 0=encoding
|
|
attributes: "ec"
|
|
encoding_api: true
|
|
- key: "fatal"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_textdecoder_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 1 # 1=fatal
|
|
attributes: "ec"
|
|
encoding_api: true
|
|
- key: "ignoreBOM"
|
|
value:
|
|
type: accessor
|
|
getter: duk_bi_textdecoder_prototype_shared_getter
|
|
getter_nargs: 0
|
|
getter_magic: 2 # 2=ignoreBOM
|
|
attributes: "ec"
|
|
encoding_api: true
|
|
- key: "decode"
|
|
value:
|
|
type: function
|
|
native: duk_bi_textdecoder_prototype_decode
|
|
length: 0
|
|
nargs: 2
|
|
attributes: "wec"
|
|
encoding_api: true
|
|
|
|
- id: bi_performance
|
|
internal_prototype: bi_object_prototype
|
|
class: Object
|
|
bidx: false
|
|
performance_api: true
|
|
present_if: DUK_USE_PERFORMANCE_BUILTIN
|
|
|
|
properties:
|
|
# Firefox and Chrome: data property with 'wec' attributes,
|
|
# inherited from PerformancePrototype. Use own data property
|
|
# for now.
|
|
- key: "now"
|
|
value:
|
|
type: function
|
|
native: duk_bi_performance_now
|
|
length: 0
|
|
nargs: 0
|
|
attributes: "wec"
|
|
performance_api: true
|
|
# Missing until semantics decided.
|
|
#- key: "timeOrigin"
|
|
# value:
|
|
# type: accessor
|
|
# getter: duk_bi_performance_timeorigin_getter
|
|
# getter_nargs: 0
|
|
# getter_magic: 0
|
|
# attributes: "ec" # check
|
|
# performance_api: true
|