Compare commits

..
18 changed files with 973 additions and 516 deletions
+22 -42
View File
@@ -102,7 +102,6 @@ ultimate source of truth. Upstream test262 files run verbatim from `test/test262
synchronous iterators, and confined synchronous generators. Abrupt completion invokes the iterator's optional `return()`.
- [x] `for...in` over own keys of plain objects, arrays, strings, and tool references. `null`, `undefined`, and other
non-objects iterate nothing. An un-awaited promise throws rather than iterating.
- [ ] `for...in` over inherited enumerable keys (`Object.create(proto)`), and skipping keys deleted during the loop.
- [x] Unlabeled `break` and `continue`.
- [x] `try`, `catch`, optional catch bindings, and `finally`.
- [x] `throw` with arbitrary values.
@@ -139,11 +138,20 @@ ultimate source of truth. Upstream test262 files run verbatim from `test/test262
arrow function.
- [x] Promise-returning string replacers are coerced synchronously to `"[object Promise]"`, like JavaScript; they are
not automatically awaited.
- [x] The optional `thisArg` of iteration methods is accepted and ignored: CodeMode functions have no `this`, so
ignoring it matches JS arrow-function semantics exactly.
- [ ] `this` in non-arrow CodeMode functions and callbacks.
- [x] `this` in non-arrow functions is the call's receiver: `obj.m()` and `obj["m"]()` see `obj`, a bare or detached
call (`f()`, `const m = obj.m; m()`, `(0, obj.m)()`) sees `undefined`, as in strict JS. Arrows read the enclosing
function's `this`. Program code has no receiver, so top-level `this` is `undefined`, as in a module.
- [x] `arguments` in non-arrow functions: an unmapped array-like of the call's arguments (`length`, indexes, spread,
`Array.from`), tagged `[object Arguments]` and not an Array. A parameter named `arguments` shadows it; arrows
read the enclosing function's. `callee` and `caller` are absent rather than poisoned.
- [x] `Function.prototype.call`, `apply`, and `bind` on program functions and built-ins:
`Array.prototype.push.call(arr, 1)`, `Math.max.apply(null, values)`, `fn.bind(obj, first)`. `apply` accepts an
array, an array-like object, or `null`/`undefined`. A bound function is named `bound f`, has its remaining
`length`, and is not constructible.
- [x] `JSON.parse` revivers and `JSON.stringify` function replacers see the holder object as `this`.
- [ ] The optional `thisArg` of iteration methods (`map`, `forEach`, `Map.prototype.forEach`, `Array.from`, …) is
accepted but not yet passed as `this`; callbacks run with `this` undefined.
- [ ] User-defined constructor calls.
- [ ] `Function.prototype.call`, `apply`, and `bind` for CodeMode functions.
- [ ] Classes and private fields.
- [x] Functions are objects: they hold own properties (`fn.count = 1`), enumerate them, and expose read-only `name`
and `length`. Names follow JavaScript's NamedEvaluation: declarations, named expressions, bindings,
@@ -155,8 +163,6 @@ ultimate source of truth. Upstream test262 files run verbatim from `test/test262
- [x] Redeclaring a function in the same scope, or alongside a `var`, is allowed: the last declaration wins.
- [x] Generator functions have their own `prototype` (inheriting the shared generator prototype), so
`g() instanceof g` holds. Plain functions have none, since they cannot construct.
- [ ] `GeneratorFunction.prototype`: every function, generator or not, inherits directly from `Function.prototype`,
and a generator whose `prototype` was replaced by a non-object still creates from the shared generator prototype.
- [x] Generator and async generator functions bind parameters (defaults, destructuring) at the call and defer only the
body to the first `next()`, so a bad argument throws synchronously from the call site, as in JS.
- [x] Synchronous and async generator declarations/expressions, `yield`, and `yield*`, including lazy bodies,
@@ -178,7 +184,7 @@ ultimate source of truth. Upstream test262 files run verbatim from `test/test262
yielded promises; mixed async request queues; sync and async `yield*` forwarding; malformed methods/results;
and declaration, expression, and object-method forms with closure and parameter behavior. The adapted suite
deliberately skips Test262 variants whose observation mechanism requires unsupported getter definitions,
proxies, prototype inspection or mutation, non-arrow `this`, classes, or arbitrary symbols. It also skips tests
proxies, prototype inspection or mutation, classes, or arbitrary symbols. It also skips tests
asserting exact promise reaction-turn counts beyond the observable ordering guarantee documented below. These
are interpreter-surface boundaries, not claims that the corresponding full Test262 families pass unchanged.
@@ -264,7 +270,7 @@ reject }` object.
- [x] Recursive assimilation of objects with an own callable `then` field across `Promise.resolve`, combinators,
constructors, reactions, `finally`, `await`, and async returns. Thenable methods run deferred, receive
first-call-wins resolve/reject functions, and ignore throws after settlement. Inherited/accessor `then` fields
and a JavaScript `this` receiver remain outside the supported object/function model.
remain outside the supported object model.
- [x] Dotted tool names are canonicalized into namespace paths; a path can be both callable and a namespace, and the
last tool supplied for a canonical path wins.
- [x] Tool path segments may be named `constructor`, `prototype`, or `__proto__` because paths use inert Map keys.
@@ -293,27 +299,9 @@ reject }` object.
- [x] Every value has a real prototype chain built fresh for each run: `Object.prototype`, `Array.prototype`,
`String.prototype`, `Error.prototype` → `TypeError.prototype`, and so on hold the built-in methods as
non-enumerable properties, and each constructor's `prototype` points at it (`[].constructor === Array`,
`Object.getPrototypeOf([]) === Array.prototype`). Programs may read and even overwrite these prototypes; the
change is confined to that run. `__proto__` is an ordinary own data key, so `o.__proto__ = x` never changes the
chain, and `Object.groupBy` results have no prototype at all, as in JS.
- [x] `Object.getPrototypeOf`: the prototype of an object, or the built-in prototype for a string, number, or boolean
(`Object.getPrototypeOf("a") === String.prototype`); `null`, `undefined`, and the two confined symbols throw a
`TypeError`.
- [x] `Object.create(proto)` with an object or `null` prototype; any other prototype is a `TypeError`
(`Object prototype may only be an Object or null`). Inherited reads, `in`, `hasOwnProperty`, and own-only
`Object.keys` follow the chain as in JS, but `for...in` still enumerates own keys only. A second `properties`
argument other than `undefined` throws a `TypeError`: property descriptors are not supported (there is no
`Object.defineProperty` either).
- [x] `Object.freeze`, `Object.seal`, and `Object.preventExtensions`, with `isFrozen`, `isSealed`, and `isExtensible`.
Each returns its argument and passes primitives through (`Object.freeze(1) === 1`, `Object.isFrozen(1)`).
Programs run as strict code, so violations throw `TypeError`: `Cannot assign to read only property 'a'`,
`Cannot add property b, object is not extensible`, and `Cannot delete property 'a'`. Arrays enforce the same
rules for index writes, `length`, and the mutating methods (`Object.freeze([1]).push(2)` throws; a sealed array's
`pop()` throws; a non-extensible array's `pop()`, `sort()`, and `splice(0, 1, x)` work). The mutating methods are
checked once up front, so a `fill` or `sort` that would land on a hole of a non-extensible array succeeds here
where JS throws. Maps, Sets, and Dates freeze their properties only, not their contents, as in JS.
`Object.freeze(new Uint8Array(1))` and `seal` throw `TypeError` like JS (`preventExtensions` and empty typed
arrays are fine). Functions are objects and freeze like any other value.
`Object.getPrototypeOf` is not exposed). Programs may read and even overwrite these prototypes; the change is
confined to that run. `__proto__` is an ordinary own data key, so `o.__proto__ = x` never changes the chain, and
`Object.groupBy` results have no prototype at all, as in JS.
- [x] Circular references are rejected when created (`o.self = o`, `array.push(array)`), not at serialization as in JS.
- [x] `Object.is` for supported data values.
- [x] `Object.groupBy` over finite collections and custom synchronous iterators/generators, with string-key coercion
@@ -340,8 +328,8 @@ reject }` object.
- [x] `keys`, `values`, `entries`, and `[Symbol.iterator]` (the same function as `values`) return live iterator objects
with `next()` and `[Symbol.iterator]`, as in JS. Iterator objects are opaque references: they print as
`[opaque reference]`, serialize to `{}`, and cannot be passed to extensions. Every built-in collection iterator
shares one prototype, where JavaScript gives each collection its own; `Object.getPrototypeOf` shows the
difference.
shares one prototype. JavaScript gives each collection its own; the difference is not observable here because
`Object.getPrototypeOf` is not exposed.
- [x] `length`, numeric indexing, index assignment, spread, and `for...of`.
- [x] The `thisArg` argument of `Array.from` is accepted and ignored, like JS arrows.
- [x] `Array.prototype.toSpliced`.
@@ -413,9 +401,9 @@ reject }` object.
- [x] `JSON.parse` and `JSON.stringify` for supported data objects.
- [x] Numeric/string indentation for `JSON.stringify`.
- [x] `JSON.parse` reviver callbacks, including postorder traversal, deletion through `undefined`, and root replacement.
Revivers receive `(key, value)` but no `this` holder because CodeMode functions intentionally have no `this`.
Revivers receive `(key, value)` with the holder as `this`.
- [x] `JSON.stringify` function and array replacers. Function replacers receive `(key, value)` in preorder, including
the root, but no `this` holder. Array replacers preserve requested property order, deduplicate names, coerce
the root, with the holder as `this`. Array replacers preserve requested property order, deduplicate names, coerce
number primitives, and ignore non-string/non-number entries. Primitive wrapper entries remain unsupported.
- [x] Captured `console.log`, `console.info`, `console.debug`, `console.warn`, and `console.error`. An Error prints as
`Error.prototype.toString` would show it (`Error: boom`), wherever it appears in the logged value.
@@ -528,12 +516,6 @@ with a hint to encode as text first (`TextDecoder`, `toBase64`, `toHex`).
- [x] `atob` and `btoa` with forgiving-base64 decoding and WebIDL string conversion; invalid input throws a
`TypeError`, since there is no `DOMException`.
- [x] `crypto.randomUUID()` and `crypto.getRandomValues(uint8Array)`.
- [x] `structuredClone(value)` deep-copies primitives, plain objects (own enumerable string keys onto a plain object;
the prototype is not kept), arrays (holes and extra keys kept), Map, Set, Date, RegExp (`lastIndex` reset to 0),
Uint8Array, and errors (standard `name`, `message`, `cause`, and `stack`; other names become `Error`, extra
fields drop). Shared references stay shared in the copy, and the copy is extensible even when the source was
frozen. Functions, symbols, promises, iterators, URL, Headers, and tool references cannot be cloned; without a
`DOMException`, the failure is a `TypeError` whose message starts with `DataCloneError:`.
- [x] `TextEncoder` and `TextDecoder` for UTF-8 only: any other label is a `RangeError`. `TextDecoder` accepts the
`fatal` and `ignoreBOM` options; `decode` takes a Uint8Array or nothing.
- [x] `new Headers()` from records, synchronous iterables of pairs, and Headers, wrapping the host's `Headers`: names
@@ -585,8 +567,6 @@ Nothing is exposed unless a host provides it; extension calls are not tool calls
non-enumerable: an extension Error carries it, and this JSON form does not. Errors have no `stack`; the diagnostic
carries a 1-based line and column in the submitted source instead.
- [x] `instanceof` against any constructor with a `prototype`, including every built-in and `Function`.
- [ ] The derived error constructors inheriting from `Error`: `Object.getPrototypeOf(TypeError)` is
`Function.prototype` here, while `TypeError.prototype` does inherit from `Error.prototype`.
- [x] Catchable user throws, runtime failures raised during interpreted evaluation, awaited tool failures, and awaited
tool-call-limit failures; parse/compile failures, cooperative timeout, and output bounding remain outside program
`catch`.
+2 -2
View File
@@ -24,7 +24,7 @@ import { typeofValue } from "./interpreter/references.js"
export type Json = Schema.Json
type Replacer<R> = (args: Array<Value>) => Effect.Effect<Value, unknown, R>
type Replacer<R> = (args: Array<Value>, holder: Obj) => Effect.Effect<Value, unknown, R>
/**
* What `JSON.stringify` would serialize for a program value, as host JSON: `toJSON` is honored, functions and
@@ -60,7 +60,7 @@ const walk = <R>(
const settled = raw instanceof PromiseObj ? yield* ctx.await(raw) : raw
const toJSON = settled instanceof Obj ? get(settled, "toJSON") : undefined
const own = toJSON instanceof Callable ? yield* ctx.call(toJSON, settled, [key]) : settled
const value = replacer === undefined ? own : yield* replacer([key, own])
const value = replacer === undefined ? own : yield* replacer([key, own], holder)
if (value === undefined || typeofValue(value) === "function") return undefined
if (typeof value === "number") return Number.isFinite(value) ? value : null
if (value === null || typeof value === "string" || typeof value === "boolean") return value
@@ -78,7 +78,7 @@ export const applyCollectionCallback = <R>(
ctx: Interpreter<R>,
callback: Value,
name: string,
): ((args: Array<Value>) => Effect.Effect<Value, unknown, R>) => {
): ((args: Array<Value>, thisValue?: Value) => Effect.Effect<Value, unknown, R>) => {
if (!isSupportedCallback(callback)) {
if (typeofValue(callback) === "function") {
throw typeError(
@@ -87,5 +87,5 @@ export const applyCollectionCallback = <R>(
}
throw typeError(`${name} expects a function callback.`)
}
return (callbackArgs) => ctx.call(callback, undefined, callbackArgs)
return (callbackArgs, thisValue) => ctx.call(callback, thisValue, callbackArgs)
}
+30 -4
View File
@@ -1,5 +1,5 @@
import { Effect } from "effect"
import type { Value } from "./objects.js"
import { Arr, Callable, coerceToInteger, coerceToString, get, Obj, type Value } from "./objects.js"
import { arrayGlobal } from "../stdlib/array.js"
import { textDecoderGlobal, textEncoderGlobal, uint8ArrayGlobal } from "../stdlib/bytes.js"
import { mapGlobal, setGlobal } from "../stdlib/collections.js"
@@ -15,11 +15,11 @@ import { uriGlobal, urlGlobal, urlSearchParamsGlobal } from "../stdlib/url.js"
import { headersGlobal } from "../stdlib/headers.js"
import { iteratorGlobals } from "../stdlib/iterator.js"
import { coercion } from "../stdlib/value.js"
import { base64Global, cryptoGlobal, structuredCloneGlobal } from "../stdlib/web.js"
import { base64Global, cryptoGlobal } from "../stdlib/web.js"
import { ToolReference } from "../tool-runtime.js"
import { errorGlobal } from "./errors.js"
import { errorTypes } from "./intrinsics.js"
import { constants, constructor, native } from "./native.js"
import { constants, constructor, methods, native, receiver } from "./native.js"
import { AsyncIteratorSymbol, IteratorSymbol, typeError } from "./model.js"
import { generatorGlobals } from "./generators.js"
import { promiseGlobal } from "./promises.js"
@@ -31,6 +31,25 @@ const functionGlobal = <R>(ctx: Interpreter<R>) => {
Effect.sync(() => {
throw typeError("The Function constructor is not supported; write the function inline.")
})
const target = (thisValue: Value, method: string) => receiver(Callable, thisValue, `Function.prototype.${method}`)
methods(ctx.builtins, ctx.builtins.Function, [
["call", 1, (thisValue, args) => ctx.call(target(thisValue, "call"), args[0], args.slice(1))],
["apply", 2, (thisValue, args) => ctx.call(target(thisValue, "apply"), args[0], listFromArrayLike(args[1]))],
[
"bind",
1,
(thisValue, args) => {
const fn = target(thisValue, "bind")
const bound = args.slice(1)
const length = get(fn, "length")
return native<R>(ctx.builtins, {
name: `bound ${coerceToString(get(fn, "name"))}`,
length: Math.max(0, (typeof length === "number" ? length : 0) - bound.length),
call: (_, rest) => ctx.call(fn, args[0], [...bound, ...rest]),
})
},
],
])
return constructor<R>(ctx.builtins, ctx.builtins.Function, {
name: "Function",
length: 1,
@@ -39,6 +58,14 @@ const functionGlobal = <R>(ctx: Interpreter<R>) => {
})
}
// CreateListFromArrayLike: `apply` reads `length` and the indexed properties of any object.
const listFromArrayLike = (value: Value): Array<Value> => {
if (value === undefined || value === null) return []
if (value instanceof Arr) return [...value.items]
if (!(value instanceof Obj)) throw typeError("Function.prototype.apply expects an array-like argument list.")
return Array.from({ length: coerceToInteger(get(value, "length")) }, (_, index) => get(value, String(index)))
}
const symbolGlobal = <R>(ctx: Interpreter<R>) => {
const symbol = native<R>(ctx.builtins, {
name: "Symbol",
@@ -95,7 +122,6 @@ const table: Record<string, Factory> = {
atob: (ctx) => base64Global(ctx, "atob"),
btoa: (ctx) => base64Global(ctx, "btoa"),
crypto: (ctx) => cryptoGlobal(ctx),
structuredClone: (ctx) => structuredCloneGlobal(ctx),
...Object.fromEntries(errorTypes.map((type) => [type, <R>(ctx: Interpreter<R>) => errorGlobal(type, ctx)])),
}
@@ -81,6 +81,7 @@ import {
keys,
Native,
parseArrayIndex,
Arguments,
Arr,
Fn,
GeneratorObj,
@@ -287,7 +288,8 @@ export class Interpreter<R> {
this.pending = options.pending
this.builtins = options.builtins
this.logs = options.logs ?? []
const globalScope = new Map<string, Binding>()
// Program code has no receiver: top-level `this` is undefined, as in a module.
const globalScope = new Map<string, Binding>([["this", { mutable: false, value: undefined }]])
// Calling back into the program never reads frame state, so any frame serves; the root is always alive.
this.root = new Frame(this, new ScopeStack([globalScope]))
for (const [name, value] of [...globals(this), ...(options.globals?.(this) ?? [])]) {
@@ -468,6 +470,7 @@ class Frame<R> {
this.scopes.capture(),
node.async,
node.generator,
node.type === "ArrowFunctionExpression",
)
// Each generator function gets its own prototype, so `g() instanceof g` holds as in JS.
if (node.generator)
@@ -1264,6 +1267,8 @@ class Frame<R> {
}
case "Identifier":
return Effect.sync(() => this.scopes.get(node.name, node))
case "ThisExpression":
return Effect.sync(() => this.scopes.get("this", node))
case "BinaryExpression":
return this.evaluateBinaryExpression(node)
case "LogicalExpression":
@@ -1617,7 +1622,7 @@ class Frame<R> {
}
return yield* self.createToolCallPromise(callable.path, args)
}
if (callable instanceof Fn) return yield* self.invokeFunction(callable, args, node)
if (callable instanceof Fn) return yield* self.invokeFunction(callable, thisValue, args, node)
if (callable instanceof Native) {
return yield* self.native(() => (callable as Native<R>).call(thisValue, args), node)
}
@@ -1659,14 +1664,24 @@ class Frame<R> {
}
// A callback invoked by a built-in runs below the call that invoked the built-in, so the deeper of the two counts.
invokeFunction(fn: Fn, args: Array<Value>, node?: AstNode): Effect.Effect<Value, unknown, R> {
invokeFunction(fn: Fn, thisValue: Value, args: Array<Value>, node?: AstNode): Effect.Effect<Value, unknown, R> {
const self = this
return Effect.flatMap(CallSite, (site) => {
const depth = Math.max(self.depth, site.depth) + 1
if (depth > MAX_CALL_DEPTH) throw rangeError("Maximum call stack size exceeded", node)
const invocation = new Frame(this.ctx, new ScopeStack([...fn.capturedScopes, new Map()]), depth)
// Seed all parameters first so defaults cannot fall through to same-named outer bindings.
const paramScope = invocation.scopes.current()
// `this` and `arguments` are scope bindings so arrows resolve them lexically; a parameter named
// `arguments` shadows the object, as in JS.
if (!fn.arrow) {
paramScope.set("this", { mutable: false, value: thisValue, initialized: true })
paramScope.set("arguments", {
mutable: true,
value: new Arguments(self.ctx.builtins.Object, [...args]),
initialized: true,
})
}
// Seed all parameters first so defaults cannot fall through to same-named outer bindings.
for (const parameter of fn.parameters) {
for (const name of collectPatternNames(parameter)) {
paramScope.set(name, { mutable: true, value: undefined, initialized: false })
@@ -2213,6 +2228,7 @@ class Frame<R> {
}
})()
if (written) return
if (target instanceof Arr && key === "length") throw rangeError("Invalid array length", node)
throw typeError(`Cannot assign to read only property '${String(key)}'.`, node)
}
+1 -1
View File
@@ -72,7 +72,7 @@ export const uriError = failure("URIError")
// Orient the agent rather than enumerate JavaScript; interpreter-support.md is the full matrix.
export const supportedSyntaxMessage =
"This is a restricted JavaScript-like language. Supported: plain and async functions, data literals, destructuring, standard control flow, await and Promise, and built-ins such as Array, Object, Math, JSON, Date, RegExp, Map, Set, and URL. Unsupported: classes, this, getters/setters, BigInt, and custom Symbols. Use plain functions and data objects instead."
"This is a restricted JavaScript-like language. Supported: plain and async functions, data literals, destructuring, standard control flow, await and Promise, and built-ins such as Array, Object, Math, JSON, Date, RegExp, Map, Set, and URL. Unsupported: classes, getters/setters, BigInt, and custom Symbols. Use plain functions and data objects instead."
export const unsupportedSyntax = (kind: string, node: AstNode): PendingThrow =>
new PendingThrow(
+14 -31
View File
@@ -9,8 +9,6 @@ import {
type GeneratorRequestKind,
IteratorSymbol,
type PendingThrow,
rangeError,
typeError,
} from "./model.js"
/** Property attributes, as in a JS property descriptor. */
@@ -43,8 +41,6 @@ export const frozen: Attributes = { writable: false, enumerable: false, configur
*/
export class Obj {
readonly props = new Map<string | symbol, Slot>()
/** [[Extensible]]: cleared by `Object.preventExtensions`, `seal`, and `freeze`. */
extensible = true
constructor(public proto: Obj | null) {}
/** The class name `Object.prototype.toString` reports: `[object Map]`. */
@@ -94,9 +90,7 @@ export class Obj {
}
export class Arr extends Obj {
override readonly tag = "Array"
/** The attributes every live element shares; `seal` and `freeze` narrow them since elements have no slots. */
elements: Attributes = data
override readonly tag: string = "Array"
constructor(
proto: Obj,
readonly items: Array<Value> = [],
@@ -168,12 +162,19 @@ export class Fn extends Callable {
readonly capturedScopes: Array<Map<string, Binding>>,
readonly async: boolean,
readonly generator: boolean,
/** Arrows have no `this` or `arguments` of their own; they read the enclosing function's. */
readonly arrow: boolean,
) {
const optional = parameters.findIndex((p) => p.type === "AssignmentPattern" || p.type === "RestElement")
super(proto, name, optional === -1 ? parameters.length : optional)
}
}
/** The strict `arguments` object: an unmapped copy of the call's arguments that is not an Array. */
export class Arguments extends Arr {
override readonly tag = "Arguments"
}
export type NativeCall<R> = (thisValue: Value, args: Array<Value>) => Effect.Effect<Value, unknown, R>
export type NativeConstruct<R> = (args: Array<Value>, newTarget: Callable) => Effect.Effect<Value, unknown, R>
@@ -466,11 +467,10 @@ export const own = (target: Obj, key: PropertyKey): Slot | undefined => {
const at = index(target, name)
if (at !== undefined) {
const items = elements(target)
if (!(at in items)) return undefined
return { value: items[at], ...(target instanceof Arr ? target.elements : data) }
return at in items ? { value: items[at], ...data } : undefined
}
if (target instanceof Arr && name === "length") {
return { value: target.items.length, writable: target.elements.writable, enumerable: false, configurable: false }
return { value: target.items.length, writable: true, enumerable: false, configurable: false }
}
}
return target.props.get(name)
@@ -512,19 +512,13 @@ export const hasPrototype = (value: Value, proto: Obj): boolean => {
const writeElement = (target: Indexed, name: string | symbol, value: Value): boolean | undefined => {
const at = index(target, name)
if (at !== undefined) {
if (target instanceof Bytes) {
target.bytes[at] = typeof value === "number" ? value : Number(value)
return true
}
if (!(at in target.items)) rejectAddition(target, at)
target.items[at] = value
if (target instanceof Bytes) target.bytes[at] = typeof value === "number" ? value : Number(value)
else target.items[at] = value
return true
}
if (!(target instanceof Arr) || name !== "length") return undefined
const length = typeof value === "number" ? value : Number(value)
if (!Number.isInteger(length) || length < 0) throw rangeError("Invalid array length")
// Shrinking deletes elements, which a sealed array forbids.
if (length < target.items.length && !target.elements.configurable) return false
if (!Number.isInteger(length) || length < 0) return false
checkArrayLength(length)
target.items.length = length
return true
@@ -554,17 +548,10 @@ export const set = (target: Obj, key: PropertyKey, value: Value): boolean => {
const written = writeElement(target, name, value)
if (written !== undefined) return written
}
rejectAddition(target, name)
target.props.set(name, { value, ...data })
return true
}
/** Creating a property on a non-extensible object is the one [[Set]] failure with its own message. */
export const rejectAddition = (target: Obj, key: string | symbol | number): void => {
if (target.extensible) return
throw typeError(`Cannot add property ${String(key)}, object is not extensible.`)
}
/** [[DefineOwnProperty]] for a data property, ignoring the chain. */
export const define = (target: Obj, key: PropertyKey, value: Value, attrs: Attributes = data): void => {
const name = canonical(key)
@@ -580,11 +567,7 @@ export const remove = (target: Obj, key: PropertyKey): boolean => {
const name = canonical(key)
if (isIndexed(target)) {
const at = index(target, name)
if (at !== undefined) {
if (target instanceof Bytes) return !(at in target.bytes)
if (at in target.items && !target.elements.configurable) return false
return delete target.items[at]
}
if (at !== undefined) return target instanceof Bytes ? !(at in target.bytes) : delete target.items[at]
if (target instanceof Arr && name === "length") return false
}
const slot = target.props.get(name)
+13 -31
View File
@@ -6,6 +6,7 @@ import {
define,
get,
hidden,
Arguments,
Arr,
GeneratorObj,
hostIterator,
@@ -14,7 +15,6 @@ import {
coerceToInteger,
coerceToNumber,
coerceToString,
rejectAddition,
type Value,
} from "../interpreter/objects.js"
import { describeValue, rejectCircularInsertion } from "../interpreter/references.js"
@@ -119,26 +119,12 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
construct: (args, newTarget) => Effect.sync(() => construct(args, prototypeFrom(newTarget, proto))),
})
methods(builtins, array, [
["isArray", 1, (_, args) => args[0] instanceof Arr],
["isArray", 1, (_, args) => args[0] instanceof Arr && !(args[0] instanceof Arguments)],
["of", 0, (_, args) => wrap([...args])],
["from", 1, (_, args) => arrayFrom(ctx, args)],
])
const self = (thisValue: Value, name: string) => receiver(Arr, thisValue, `Array.prototype.${name}`)
// A mutating method fails where its first element write, delete, or `length` write would on a frozen, sealed, or
// non-extensible array. `growth` is given by the methods that always write `length`, even when it is 0; holes a
// method would fill on a non-extensible array are not checked.
const mutable = (target: Arr, growth?: number): Arr => {
const length = target.items.length
if ((growth ?? 0) > 0) rejectAddition(target, length)
if ((growth ?? 0) < 0 && length > 0 && !target.elements.configurable) {
throw typeError(`Cannot delete property '${length - 1}'.`)
}
if (!target.elements.writable && (length > 0 || growth !== undefined)) {
throw typeError(`Cannot assign to read only property '${length > 0 ? 0 : "length"}'.`)
}
return target
}
const optNumber = (value: Value): number | undefined => (value === undefined ? undefined : coerceToInteger(value))
// Callback methods fix the iteration length while reading existing elements live.
const iterate = (
@@ -228,8 +214,6 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
0,
(thisValue) => {
const target = self(thisValue, "reverse")
// Fewer than two elements means no writes at all, so a frozen one-element array reverses fine.
if (target.items.length > 1) mutable(target)
target.items.reverse()
return target
},
@@ -238,7 +222,7 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
"sort",
1,
(thisValue, args) => {
const target = mutable(self(thisValue, "sort"))
const target = self(thisValue, "sort")
const items = target.items
const length = items.length
const holeCount = Array.from({ length }, (_, index) => Object.hasOwn(items, index)).filter((o) => !o).length
@@ -278,7 +262,7 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
"push",
1,
(thisValue, args) => {
const target = mutable(self(thisValue, "push"), args.length)
const target = self(thisValue, "push")
// Validate all insertions before mutating to avoid partial cyclic updates.
for (const item of args) rejectCircularInsertion(target, item, "Array.push result")
return target.items.push(...args)
@@ -288,27 +272,25 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
"unshift",
1,
(thisValue, args) => {
const target = mutable(self(thisValue, "unshift"), args.length)
const target = self(thisValue, "unshift")
for (const item of args) rejectCircularInsertion(target, item, "Array.unshift result")
return target.items.unshift(...args)
},
],
["pop", 0, (thisValue) => mutable(self(thisValue, "pop"), -1).items.pop()],
["shift", 0, (thisValue) => mutable(self(thisValue, "shift"), -1).items.shift()],
["pop", 0, (thisValue) => self(thisValue, "pop").items.pop()],
["shift", 0, (thisValue) => self(thisValue, "shift").items.shift()],
[
"splice",
2,
(thisValue, args) => {
const target = self(thisValue, "splice")
const length = target.items.length
if (args.length === 0) return wrap(target.items.splice(0, 0))
const start = optNumber(args[0]) ?? 0
const from = start < 0 ? Math.max(length + start, 0) : Math.min(start, length)
const deleteCount =
args.length === 1 ? length - from : Math.min(Math.max(optNumber(args[1]) ?? 0, 0), length - from)
if (args.length === 1) return wrap(target.items.splice(start))
const deleteCount = optNumber(args[1]) ?? 0
const inserted = args.slice(2)
for (const item of inserted) rejectCircularInsertion(target, item, "Array.splice result")
mutable(target, inserted.length - deleteCount)
return wrap(target.items.splice(from, deleteCount, ...inserted))
return wrap(target.items.splice(start, deleteCount, ...inserted))
},
],
[
@@ -327,7 +309,7 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
"fill",
1,
(thisValue, args) => {
const target = mutable(self(thisValue, "fill"))
const target = self(thisValue, "fill")
rejectCircularInsertion(target, args[0], "Array.fill result")
target.items.fill(args[0], optNumber(args[1]), optNumber(args[2]))
return target
@@ -337,7 +319,7 @@ export const arrayGlobal = <R>(ctx: Interpreter<R>) => {
"copyWithin",
2,
(thisValue, args) => {
const target = mutable(self(thisValue, "copyWithin"))
const target = self(thisValue, "copyWithin")
target.items.copyWithin(optNumber(args[0]) ?? 0, optNumber(args[1]) ?? 0, optNumber(args[2]))
return target
},
+1 -1
View File
@@ -40,7 +40,7 @@ const parse = <R>(ctx: Interpreter<R>, args: Array<Value>): Effect.Effect<Value,
else set(value, name, revived)
}
}
return yield* apply([key, value])
return yield* apply([key, value], holder)
})
return visit(record(ctx.builtins.Object, { "": parsed }), "")
}
+9 -65
View File
@@ -1,6 +1,13 @@
import { Effect } from "effect"
import { constructor, methods, receiver } from "../interpreter/native.js"
import { type AstNode, AsyncIteratorSymbol, invalidData, IteratorSymbol, typeError } from "../interpreter/model.js"
import {
type AstNode,
AsyncIteratorSymbol,
invalidData,
IteratorSymbol,
rangeError,
typeError,
} from "../interpreter/model.js"
import {
define,
entries,
@@ -11,16 +18,13 @@ import {
hidden,
keys,
own,
ownKeys,
Arr,
Bytes,
Obj,
PromiseObj,
set,
coerceToString,
type Value,
} from "../interpreter/objects.js"
import { primitivePrototype } from "../interpreter/intrinsics.js"
import { containsOpaqueReference, describeValue, rejectCircularInsertion } from "../interpreter/references.js"
import { invoke, preserveConsumerError } from "../interpreter/callback.js"
import type { Interpreter } from "../interpreter/interpreter.js"
@@ -59,6 +63,7 @@ export const objectAssign = <R>(ctx: Interpreter<R>, args: Array<Value>): Value
for (const key of enumerableKeys(from)) {
rejectCircularInsertion(target, getOwn(from, key), "Object.assign result", seen)
if (!set(target, key, getOwn(from, key))) {
if (target instanceof Arr && key === "length") throw rangeError("Invalid array length")
throw typeError(`Cannot assign to read only property '${String(key)}'.`)
}
}
@@ -102,34 +107,6 @@ const classTag = (value: Value): string => {
const propertyKey = (value: Value): PropertyKey =>
value === AsyncIteratorSymbol || value === IteratorSymbol ? value : coerceToString(value)
// SetIntegrityLevel: primitives pass through. A typed array's bytes cannot carry attributes, so JS throws after
// already making it non-extensible.
const restrict = (level: "freeze" | "seal" | "preventExtensions", value: Value): Value => {
if (!(value instanceof Obj)) return value
value.extensible = false
if (level === "preventExtensions") return value
if (value instanceof Bytes && value.bytes.length > 0) {
throw typeError(`Cannot ${level} array buffer views with elements.`)
}
for (const slot of value.props.values()) {
slot.configurable = false
if (level === "freeze" && "value" in slot) slot.writable = false
}
if (value instanceof Arr) value.elements = { writable: level === "seal", enumerable: true, configurable: false }
return value
}
// TestIntegrityLevel: array elements and `length` answer through `own`, so a non-extensible empty array is sealed
// but not frozen, as in JS.
const integrity = (value: Value, frozen: boolean): boolean => {
if (!(value instanceof Obj)) return true
if (value.extensible) return false
return ownKeys(value).every((key) => {
const slot = own(value, key)
return slot !== undefined && !slot.configurable && !(frozen && "value" in slot && slot.writable)
})
}
// Object constructs identically with or without new, like JS. Only `keys` copies its result into the
// program; `values`, `entries`, `assign`, and `fromEntries` hand back the program's own values.
export const objectGlobal = <R>(ctx: Interpreter<R>) => {
@@ -189,39 +166,6 @@ export const objectGlobal = <R>(ctx: Interpreter<R>) => {
],
["assign", 2, (_, args) => objectAssign(ctx, args)],
["fromEntries", 1, (_, args) => objectFromEntries(ctx, args[0])],
["freeze", 1, (_, args) => restrict("freeze", args[0])],
["seal", 1, (_, args) => restrict("seal", args[0])],
["preventExtensions", 1, (_, args) => restrict("preventExtensions", args[0])],
["isFrozen", 1, (_, args) => integrity(args[0], true)],
["isSealed", 1, (_, args) => integrity(args[0], false)],
["isExtensible", 1, (_, args) => args[0] instanceof Obj && args[0].extensible],
[
"getPrototypeOf",
1,
(_, args) => {
if (args[0] instanceof Obj) return args[0].proto
const proto = primitivePrototype(builtins, args[0])
if (proto === undefined) {
throw typeError(`Object.getPrototypeOf cannot convert ${describeValue(args[0])} to an object.`)
}
return proto
},
],
[
"create",
2,
(_, args) => {
if (args[0] !== null && !(args[0] instanceof Obj)) {
throw typeError("Object prototype may only be an Object or null.")
}
if (args[1] !== undefined) {
throw typeError(
"Object.create property descriptors are not supported; assign the fields after creating the object.",
)
}
return new Obj(args[0])
},
],
])
define(object, "groupBy", groupBy(ctx, "Object"), hidden)
methods(builtins, builtins.Object, [
+1 -78
View File
@@ -1,28 +1,8 @@
import { fn, methods } from "../interpreter/native.js"
import { typeError } from "../interpreter/model.js"
import {
define,
entries,
get,
getOwn,
hasOwn,
hidden,
isRuntimeReference,
Arr,
Bytes,
DateObj,
ErrorObj,
MapObj,
Obj,
RegExpObj,
SetObj,
coerceToString,
type Value,
} from "../interpreter/objects.js"
import { createErrorValue, isErrorType } from "../interpreter/intrinsics.js"
import { Bytes, Obj, coerceToString } from "../interpreter/objects.js"
import { describeValue } from "../interpreter/references.js"
import type { Interpreter } from "../interpreter/interpreter.js"
import { ToolReference } from "../tool-runtime.js"
// WebIDL DOMString conversion: a missing argument is a TypeError, anything else stringifies. Invalid input is a
// TypeError as well; browsers throw a DOMException named InvalidCharacterError, which CodeMode does not have.
@@ -37,63 +17,6 @@ export const base64Global = <R>(ctx: Interpreter<R>, name: "atob" | "btoa") =>
}
})
// HTML structured clone over CodeMode's data kinds. Shared references survive through the memo; prototypes and
// frozen state do not, as in JS. Without a DOMException, DataCloneError is a TypeError carrying that prefix.
export const structuredCloneGlobal = <R>(ctx: Interpreter<R>) =>
fn<R>(ctx.builtins, "structuredClone", 1, (_, args) => {
if (args.length === 0) throw typeError("structuredClone requires 1 argument")
const builtins = ctx.builtins
const memo = new Map<Obj, Obj>()
const clone = (value: Value): Value => {
if (typeof value === "symbol" || value instanceof ToolReference) {
throw typeError(`DataCloneError: ${describeValue(value)} could not be cloned.`)
}
if (!(value instanceof Obj)) return value
const seen = memo.get(value)
if (seen !== undefined) return seen
const remember = <T extends Obj>(copy: T): T => {
memo.set(value, copy)
return copy
}
if (value instanceof MapObj) {
const copy = remember(new MapObj(builtins.Map))
for (const [key, item] of value.map) copy.map.set(clone(key), clone(item))
return copy
}
if (value instanceof SetObj) {
const copy = remember(new SetObj(builtins.Set))
for (const item of value.set) copy.set.add(clone(item))
return copy
}
if (value instanceof DateObj) return remember(new DateObj(builtins.Date, value.time))
if (value instanceof RegExpObj) {
return remember(new RegExpObj(builtins.RegExp, value.regex.source, value.regex.flags))
}
if (value instanceof Bytes) return remember(new Bytes(builtins.Uint8Array, new Uint8Array(value.bytes)))
if (value instanceof ErrorObj) {
const name = get(value, "name")
const message = get(value, "message")
const copy = remember(
createErrorValue(
builtins[typeof name === "string" && isErrorType(name) ? name : "Error"],
message === undefined ? undefined : coerceToString(message),
),
)
const stack = getOwn(value, "stack")
if (typeof stack === "string") define(copy, "stack", stack, hidden)
if (hasOwn(value, "cause")) define(copy, "cause", clone(getOwn(value, "cause")), hidden)
return copy
}
if (isRuntimeReference(value)) throw typeError(`DataCloneError: ${describeValue(value)} could not be cloned.`)
const copy = remember(
value instanceof Arr ? new Arr(builtins.Array, new Array(value.items.length)) : new Obj(builtins.Object),
)
for (const [key, item] of entries(value)) define(copy, key, clone(item))
return copy
}
return clone(args[0])
})
export const cryptoGlobal = <R>(ctx: Interpreter<R>) => {
const object = new Obj(ctx.builtins.Object)
methods(ctx.builtins, object, [
@@ -210,11 +210,14 @@ describe("Test262 JSON.stringify replacer adaptations", () => {
})
describe("CodeMode JSON callback boundaries", () => {
test("this remains unsupported rather than exposing callback holders", async () => {
const result = await Effect.runPromise(
CodeMode.execute({ code: `return JSON.parse("1", function (key, item) { return this })`, tools: {} }),
)
expect(result).toMatchObject({ ok: false, error: { kind: "UnsupportedSyntax" } })
test("revivers and replacers see the holder as this", async () => {
expect(
await value(`
const revived = JSON.parse('{"a":{"b":1}}', function (key, item) { return key === "b" ? this.b + 1 : item })
const text = JSON.stringify({ a: 1, b: 2 }, function (key, item) { return key === "a" ? this.b : item })
return [revived, text]
`),
).toEqual([{ a: { b: 2 } }, '{"a":2,"b":2}'])
})
test("prototype-named keys parse as own data and reach the reviver", async () => {
@@ -77,6 +77,6 @@ describe("new on a non-constructible callee", () => {
expect(failure.message).toStartWith(
"SyntaxError: Syntax 'ClassDeclaration' is not supported. This is a restricted JavaScript-like language. Supported: ",
)
expect(failure.message).toContain("Unsupported: classes, this, getters/setters, BigInt, and custom Symbols.")
expect(failure.message).toContain("Unsupported: classes, getters/setters, BigInt, and custom Symbols.")
})
})
+74 -216
View File
@@ -1179,232 +1179,90 @@ describe("sloppy duplicate parameters and for...in targets", () => {
})
})
describe("Object.freeze, seal, and preventExtensions", () => {
test("a frozen object rejects writes, additions, and deletes with TypeErrors", async () => {
describe("this, arguments, and Function.prototype.call/apply/bind", () => {
test("this is the call receiver for non-arrow functions and lexical for arrows", async () => {
expect(
await value(`
const o = Object.freeze({ a: 1 })
const errors = []
try { o.a = 2 } catch (e) { errors.push(e.name + ": " + e.message) }
try { o.b = 2 } catch (e) { errors.push(e.name + ": " + e.message) }
try { delete o.a } catch (e) { errors.push(e.name + ": " + e.message) }
return [errors, o.a, Object.isFrozen(o), Object.isSealed(o), Object.isExtensible(o)]
const o = { n: 1, m() { return this.n }, a() { return (() => this.n)() }, bare() { return this } }
const detached = o.bare
function f() { return this }
return [o.m(), o["m"](), o?.m(), (o.m)(), o.a(), o.bare() === o, detached(), f(), (0, o.bare)(), this, (() => this)()]
`),
).toEqual([1, 1, 1, 1, 1, true, null, null, null, null, null])
})
test("this reaches generator and async methods and plain-function callbacks", async () => {
expect(
await value(`
const o = { n: 2, *g() { yield this.n }, async m() { return this.n }, xs: [1, 2], go() { return this.xs.map(function (x) { return [x, this] }) } }
return [[...o.g()], await o.m(), o.go()]
`),
).toEqual([
[2],
2,
[
"TypeError: Cannot assign to read only property 'a'.",
"TypeError: Cannot add property b, object is not extensible.",
"TypeError: Cannot delete property 'a'.",
[1, null],
[2, null],
],
])
})
test("arguments is an unmapped array-like that arrows and parameters interact with as in JS", async () => {
expect(
await value(`
function f(a) { arguments[0] = 9; return [arguments.length, arguments[1], a, [...arguments], Array.isArray(arguments), Object.prototype.toString.call(arguments), typeof arguments.map, (() => arguments[1])()] }
function shadow(arguments) { return arguments }
function hoisted() { var arguments; return arguments.length }
let outer
try { outer = arguments } catch (error) { outer = error.name }
return [f(1, 2), shadow(7), hoisted(1, 2, 3), outer]
`),
).toEqual([[2, 2, 1, [9, 2], false, "[object Arguments]", "undefined", 2], 7, 3, "ReferenceError"])
})
test("call, apply, and bind set this and arguments on program functions and built-ins", async () => {
expect(
await value(`
function f(a, b, c) { return [this, a, b, c] }
const g = f.bind({ k: 1 }, "A")
const arr = [1]
Array.prototype.push.call(arr, 2, 3)
return [
f.call("t", 1, 2),
f.apply({ k: 2 }, [1, 2]),
f.apply(null, { length: 2, 0: "x", 1: "y" }),
f.apply(null).length,
g("B", "C"), g.name, g.length,
f.bind(1).bind(2)()[0],
arr,
Math.max.apply(null, [1, 5, 3]),
Math.max.bind(null, 10)(3),
[1, 2].map(f.bind(null, 0)).map((r) => r[1]),
]
`),
).toEqual([
["t", 1, 2, null],
[{ k: 2 }, 1, 2, null],
[null, "x", "y", null],
4,
[{ k: 1 }, "A", "B", "C"],
"bound f",
2,
1,
true,
true,
false,
[1, 2, 3],
5,
10,
[0, 0],
])
})
test("seal keeps writes, preventExtensions keeps deletes, and each returns its argument", async () => {
expect(
await value(`
const s = { a: 1 }, p = { a: 1 }
const errors = []
Object.seal(s).a = 2
try { delete s.a } catch (e) { errors.push(e.name) }
delete Object.preventExtensions(p).a
try { p.b = 1 } catch (e) { errors.push(e.name) }
return [errors, s.a, Object.keys(p), Object.isSealed(s), Object.isFrozen(s), Object.isSealed(p), Object.isFrozen(p)]
`),
).toEqual([["TypeError", "TypeError"], 2, [], true, false, true, true])
})
test("primitives pass through, and Object.assign honors the flags", async () => {
expect(
await value(`
return [Object.freeze(1) === 1, Object.isFrozen(1), Object.isSealed("a"), Object.isExtensible(null), Object.isFrozen({}), Object.isExtensible({})]
`),
).toEqual([true, true, true, false, false, true])
const failure = await error(`Object.assign(Object.freeze({ a: 1 }), { b: 1 })`)
expect(failure.message).toContain("Cannot add property b, object is not extensible")
})
test("frozen arrays reject element, length, and mutating-method writes like JS", async () => {
expect(
await value(`
const a = Object.freeze([1, 2])
const attempt = (f) => { try { f(); return "ok" } catch (e) { return e.name + ": " + e.message } }
return [
attempt(() => a.push(3)),
attempt(() => { a[0] = 9 }),
attempt(() => { a[5] = 9 }),
attempt(() => { a.length = 0 }),
attempt(() => a.pop()),
attempt(() => a.sort()),
attempt(() => a.reverse()),
attempt(() => a.fill(0)),
attempt(() => a.copyWithin(0, 1)),
attempt(() => a.splice(0, 1)),
attempt(() => a.unshift(0)),
a, a.map((x) => x * 2), Object.isFrozen(a), Object.isFrozen(Object.freeze([])),
]
`),
).toEqual([
"TypeError: Cannot add property 2, object is not extensible.",
"TypeError: Cannot assign to read only property '0'.",
"TypeError: Cannot add property 5, object is not extensible.",
"TypeError: Cannot assign to read only property 'length'.",
"TypeError: Cannot delete property '1'.",
"TypeError: Cannot assign to read only property '0'.",
"TypeError: Cannot assign to read only property '0'.",
"TypeError: Cannot assign to read only property '0'.",
"TypeError: Cannot assign to read only property '0'.",
"TypeError: Cannot delete property '1'.",
"TypeError: Cannot add property 2, object is not extensible.",
[1, 2],
[2, 4],
true,
true,
])
})
test("sealed and non-extensible arrays allow exactly the writes JS does", async () => {
expect(
await value(`
const s = Object.seal([1, 2]), p = Object.preventExtensions([1, 2, 3])
const attempt = (f) => { try { f(); return "ok" } catch (e) { return e.name } }
const results = [attempt(() => { s[0] = 5 }), attempt(() => s.pop()), attempt(() => { s.length = 0 }), attempt(() => s.push(1))]
p.pop(); p.sort(); p.reverse(); p.fill(0, 1); p.copyWithin(0, 1); p.length = 5
results.push(attempt(() => p.push(1)), attempt(() => p.splice(0, 1, 7, 8)), p.splice(0, 1, 7), attempt(() => { p[9] = 1 }))
return [results, s, p, Object.isSealed(p), Object.isFrozen(p), Object.isSealed(Object.preventExtensions([])), Object.isFrozen(Object.preventExtensions([]))]
`),
).toEqual([
["ok", "TypeError", "TypeError", "TypeError", "TypeError", "TypeError", [0], "TypeError"],
[5, 2],
[7, 0, null, null, null],
false,
false,
true,
false,
])
})
test("typed arrays with elements cannot be frozen; wrappers freeze their properties only", async () => {
const failure = await error(`Object.freeze(new Uint8Array([1]))`)
expect(failure.message).toContain("Cannot freeze array buffer views with elements")
expect(
await value(`
const empty = Object.freeze(new Uint8Array(0))
const bytes = Object.preventExtensions(new Uint8Array([1]))
const m = Object.freeze(new Map()); m.set(1, 2)
const f = Object.freeze(() => 1)
let named = "ok"
try { f.x = 1 } catch (e) { named = e.name }
return [Object.isFrozen(empty), Object.isFrozen(bytes), Object.isExtensible(bytes), m.size, Object.isFrozen(f), named, f()]
`),
).toEqual([true, false, false, 1, true, "TypeError", 1])
})
})
describe("Object.getPrototypeOf and Object.create", () => {
test("getPrototypeOf returns the built-in prototypes for objects and primitives", async () => {
expect(
await value(`
return [
Object.getPrototypeOf([]) === Array.prototype,
Object.getPrototypeOf({}) === Object.prototype,
Object.getPrototypeOf(Object.prototype),
Object.getPrototypeOf("a") === String.prototype,
Object.getPrototypeOf(1) === Number.prototype,
Object.getPrototypeOf(true) === Boolean.prototype,
Object.getPrototypeOf(new TypeError("x")) === TypeError.prototype,
Object.getPrototypeOf(TypeError.prototype) === Error.prototype,
Object.getPrototypeOf(() => 1) === Function.prototype,
]
`),
).toEqual([true, true, null, true, true, true, true, true, true])
})
test("getPrototypeOf rejects null, undefined, and symbols", async () => {
expect((await error(`Object.getPrototypeOf(null)`)).message).toContain("cannot convert null to an object")
expect((await error(`Object.getPrototypeOf(undefined)`)).message).toContain("cannot convert undefined to an object")
expect((await error(`Object.getPrototypeOf(Symbol.iterator)`)).message).toContain("cannot convert a symbol")
})
test("Object.create links the prototype: inherited reads, in, and own-only keys", async () => {
expect(
await value(`
const p = { greet(name) { return "hi " + name }, a: 1 }
const c = Object.create(p)
c.name = "x"
const seen = []
for (const key in c) seen.push(key)
return ["greet" in c, Object.keys(c), c.hasOwnProperty("a"), c.a, c.greet(c.name), Object.getPrototypeOf(c) === p, Object.getPrototypeOf(Object.create(null)), seen]
`),
).toEqual([true, ["name"], false, 1, "hi x", true, null, ["name"]])
})
test("Object.create rejects non-object prototypes and property descriptors", async () => {
expect((await error(`Object.create(1)`)).message).toContain("Object prototype may only be an Object or null")
expect((await error(`Object.create()`)).message).toContain("Object prototype may only be an Object or null")
expect((await error(`Object.create(null, { a: { value: 1 } })`)).message).toContain(
"Object.create property descriptors are not supported",
test("call and apply reject non-callable receivers and non-array-like argument lists", async () => {
expect((await error(`Function.prototype.call.call(1)`)).message).toContain(
"Function.prototype.call called on incompatible receiver",
)
expect((await error(`(() => 1).apply(null, 5)`)).message).toContain("expects an array-like argument list")
expect((await error(`function f(n) { return f.call(null, n + 1) } f(0)`)).message).toContain(
"Maximum call stack size exceeded",
)
expect(await value(`return Object.keys(Object.create({}, undefined))`)).toEqual([])
})
})
describe("structuredClone", () => {
test("deep-copies data values and keeps shared references shared", async () => {
expect(
await value(`
const shared = { n: 1 }
const source = { a: shared, b: shared, list: [1, , shared], map: new Map([[1, { a: [1, 2] }]]), set: new Set([shared]), when: new Date(5), bytes: new Uint8Array([1, 2]) }
const c = structuredClone(source)
c.a.n = 2
return [
c !== source, c.a === c.b, c.a !== shared, shared.n, c.list[2] === c.a, 1 in c.list, c.list.length,
c.map.get(1).a, c.map !== source.map, c.set.has(c.a), c.when.getTime(), c.when instanceof Date,
c.bytes instanceof Uint8Array, c.bytes[1], Array.isArray(c.list),
]
`),
).toEqual([true, true, true, 1, true, false, 3, [1, 2], true, true, 5, true, true, 2, true])
})
test("regexps reset lastIndex, errors keep name, message, and cause, and extras are dropped", async () => {
expect(
await value(`
const r = /a/g
r.lastIndex = 3
const e = new TypeError("boom", { cause: { code: 1 } })
e.extra = 1
const custom = new Error("x")
custom.name = "Custom"
const [cr, ce, cc] = [structuredClone(r), structuredClone(e), structuredClone(custom)]
return [cr.source, cr.flags, cr.lastIndex, ce instanceof TypeError, ce.name, ce.message, ce.cause, ce.cause !== e.cause, ce.extra, Object.keys(ce), cc.name]
`),
).toEqual(["a", "g", 0, true, "TypeError", "boom", { code: 1 }, true, null, [], "Error"])
})
test("the clone is a plain extensible object: prototypes, symbols, undefined fields, and frozen state drop", async () => {
expect(
await value(`
const c = structuredClone(Object.freeze(Object.assign(Object.create({ inherited: 1 }), { a: undefined, [Symbol.iterator]: 1, b: 2 })))
return [Object.isFrozen(c), Object.getPrototypeOf(c) === Object.prototype, "a" in c, Symbol.iterator in c, c.b, c.inherited]
`),
).toEqual([false, true, true, false, 2, null])
})
test("functions, symbols, promises, wrappers, and tool references throw a DataCloneError TypeError", async () => {
for (const code of [
`structuredClone(() => 1)`,
`structuredClone({ deep: [Symbol.iterator] })`,
`structuredClone(Promise.resolve(1))`,
`structuredClone(new URL("http://x"))`,
`structuredClone(tools)`,
]) {
const failure = await error(code)
expect(failure.message).toMatch(/^TypeError: DataCloneError: .* could not be cloned\./)
}
expect(await value(`try { structuredClone(() => 1) } catch (e) { return e.name }`)).toBe("TypeError")
expect((await error(`structuredClone()`)).message).toContain("structuredClone requires 1 argument")
})
})
+3 -1
View File
@@ -1416,7 +1416,9 @@ describe("built-in iterators", () => {
const logged = await run(`console.log([1].keys()); return null`)
expect(logged.logs?.[0]).toBe("[opaque reference]")
expect((await error(`return [1].keys() + ""`)).message).toContain("Binary operators require data values")
expect((await error(`return [1].keys().next.call({})`)).message).toContain("is not a function")
expect((await error(`return [1].keys().next.call({})`)).message).toContain(
"Iterator.prototype.next called on incompatible receiver a data object",
)
expect((await error(`const it = [1].keys(); const next = it.next; return next()`)).message).toContain(
"Iterator.prototype.next called on incompatible receiver undefined",
)
+3 -3
View File
@@ -24,9 +24,9 @@ Without them the runner registers no tests, so CI is unaffected. Licensed under
`script/sync-test262.ts` skips a file when its frontmatter declares a `flags`, `features`, or `includes` value the
manifest marks unsupported, or when its code matches one of the manifest's `boundaries` patterns. The sync checks the
checkout is at the pinned revision, so every machine runs the same 4595 files. Boundaries are
intentional limits of the interpreter, not compatibility work: classes, `this`, `arguments`, prototype objects,
property descriptors, accessors, boxed primitives, sloppy mode, `eval`, `Symbol()`, and the `$262` host API. If one
checkout is at the pinned revision, so every machine runs the same files. Boundaries are
intentional limits of the interpreter, not compatibility work: classes, prototype objects, property descriptors,
accessors, boxed primitives, sloppy mode, `eval`, `Symbol()`, and the `$262` host API. If one
of those decisions changes, delete its entry and re-sync; the tests are upstream, not lost.
## Commands
+6 -10
View File
@@ -2,26 +2,22 @@
"revision": "250f204f23a9249ff204be2baec29600faae7b75",
"directories": [
"built-ins/Array/prototype",
"built-ins/Function/prototype/apply",
"built-ins/Function/prototype/bind",
"built-ins/Function/prototype/call",
"built-ins/Iterator",
"built-ins/Object/freeze",
"built-ins/Object/getPrototypeOf",
"built-ins/Object/isExtensible",
"built-ins/Object/isFrozen",
"built-ins/Object/isSealed",
"built-ins/Object/preventExtensions",
"built-ins/String/raw",
"language/arguments-object",
"language/expressions/tagged-template",
"language/expressions/this",
"language/statements"
],
"harness": ["assert.js", "sta.js", "compareArray.js", "doneprintHandle.js"],
"flags": ["module", "raw", "noStrict"],
"boundaries": {
"class": "\\bclass\\s*[A-Za-z_${]",
"this": "\\bthis\\b",
"arguments": "\\barguments\\b",
"call/apply/bind": "\\.(call|apply|bind)\\s*\\(",
"accessor properties": "\\b(get|set)\\s+[\\w$\\[][^\\n(]*\\(",
"property descriptors": "Object\\.(defineProperty|defineProperties|getOwnPropertyDescriptors?|getOwnPropertyNames|setPrototypeOf)\\b",
"property descriptors": "Object\\.(defineProperty|defineProperties|getOwnPropertyDescriptors?|getOwnPropertyNames|create|getPrototypeOf|setPrototypeOf|freeze|seal|preventExtensions|isFrozen|isSealed|isExtensible)\\b",
"boxed primitives": "\\bnew\\s+(String|Number|Boolean)\\s*\\(",
"sloppy mode": "\\bwith\\s*\\(",
"eval": "\\b(eval|Function)\\b",
+763 -19
View File
@@ -4,13 +4,92 @@ built-ins/Array/prototype/concat/S15.4.4.4_A2_T2.js # Array.prototype.concat ca
built-ins/Array/prototype/concat/S15.4.4.4_A3_T1.js # arr.hasOwnProperty("1") must return true Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js # b.hasOwnProperty("2") must return true Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js # b.hasOwnProperty("2") must return true Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/concat/call-with-boolean.js # TypeError: Array.prototype.concat called on incompatible receiver a boolean.
built-ins/Array/prototype/concat/create-ctor-non-object.js # a.concat() throws a TypeError exception Expected a TypeError to be thrown but no exception was throw
built-ins/Array/prototype/copyWithin/call-with-boolean.js # TypeError: Array.prototype.copyWithin called on incompatible receiver a boolean.
built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js # Array.copyWithin expects start to be a number.
built-ins/Array/prototype/copyWithin/length-near-integer-limit.js # TypeError: Array.prototype.copyWithin called on incompatible receiver a data object.
built-ins/Array/prototype/copyWithin/return-abrupt-from-end.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/copyWithin/return-abrupt-from-start.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/copyWithin/return-abrupt-from-target.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/copyWithin/return-this.js # TypeError: Array.prototype.copyWithin called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-1-10.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-1-11.js # TypeError: Array.prototype.every called on incompatible receiver a Date.
built-ins/Array/prototype/every/15.4.4.16-1-12.js # TypeError: Array.prototype.every called on incompatible receiver a RegExp.
built-ins/Array/prototype/every/15.4.4.16-1-13.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-1-14.js # TypeError: Array.prototype.every called on incompatible receiver an Error.
built-ins/Array/prototype/every/15.4.4.16-1-3.js # TypeError: Array.prototype.every called on incompatible receiver a boolean.
built-ins/Array/prototype/every/15.4.4.16-1-5.js # TypeError: Array.prototype.every called on incompatible receiver a number.
built-ins/Array/prototype/every/15.4.4.16-1-7.js # TypeError: Array.prototype.every called on incompatible receiver a string.
built-ins/Array/prototype/every/15.4.4.16-2-1.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-2-14.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-2-17.js # func(12, 11) !== true
built-ins/Array/prototype/every/15.4.4.16-2-19.js # TypeError: Array.prototype.every called on incompatible receiver a function.
built-ins/Array/prototype/every/15.4.4.16-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/every/15.4.4.16-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/every/15.4.4.16-3-1.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-10.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-11.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-12.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-13.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-14.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-15.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-16.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-17.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-18.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-19.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-2.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-20.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-21.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-22.js # toStringAccessed !== true
built-ins/Array/prototype/every/15.4.4.16-3-24.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-25.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-29.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-3.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-4.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-5.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-6.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-7.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-8.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-3-9.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-5-10.js # [11].every(callbackfn, objArray) !== true
built-ins/Array/prototype/every/15.4.4.16-5-14.js # [11].every(callbackfn, Math) !== true
built-ins/Array/prototype/every/15.4.4.16-5-15.js # [11].every(callbackfn, objDate) !== true
built-ins/Array/prototype/every/15.4.4.16-5-16.js # [11].every(callbackfn, objRegExp) !== true
built-ins/Array/prototype/every/15.4.4.16-5-17.js # [11].every(callbackfn, JSON) !== true
built-ins/Array/prototype/every/15.4.4.16-5-18.js # [11].every(callbackfn, objError) !== true
built-ins/Array/prototype/every/15.4.4.16-5-19.js # [11].every(callbackfn, arg) !== true
built-ins/Array/prototype/every/15.4.4.16-5-2.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-22.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-23.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-24.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-3.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-4.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-5.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/every/15.4.4.16-5-6.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/every/15.4.4.16-5-9.js # [11].every(callbackfn, objFunction) !== true
built-ins/Array/prototype/every/15.4.4.16-7-6.js # res Expected SameValue(«true», «false») to be true
built-ins/Array/prototype/every/15.4.4.16-7-8.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-i-1.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/every/15.4.4.16-7-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/every/15.4.4.16-7-c-i-8.js # [, , , ].every(callbackfn) Expected SameValue(«true», «false») to be true
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-16.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-17.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-18.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-19.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-20.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-21.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-22.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-23.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-6.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-7.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/every/15.4.4.16-7-c-ii-8.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-iii-1.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-iii-2.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-iii-27.js # [11].every(callbackfn) !== true
built-ins/Array/prototype/every/15.4.4.16-7-c-iii-3.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-7-c-iii-4.js # TypeError: Array.prototype.every called on incompatible receiver a data object.
built-ins/Array/prototype/every/15.4.4.16-8-10.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/every/15.4.4.16-8-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/every/15.4.4.16-8-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -19,9 +98,66 @@ built-ins/Array/prototype/every/15.4.4.16-8-5.js # … cannot be constructed: u
built-ins/Array/prototype/every/15.4.4.16-8-6.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/every/15.4.4.16-8-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/every/15.4.4.16-8-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/every/call-with-boolean.js # TypeError: Array.prototype.every called on incompatible receiver a boolean.
built-ins/Array/prototype/fill/call-with-boolean.js # TypeError: Array.prototype.fill called on incompatible receiver a boolean.
built-ins/Array/prototype/fill/length-near-integer-limit.js # TypeError: Array.prototype.fill called on incompatible receiver a data object.
built-ins/Array/prototype/fill/return-abrupt-from-end.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/fill/return-abrupt-from-start.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/fill/return-this.js # TypeError: Array.prototype.fill called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-1-10.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-1-11.js # TypeError: Array.prototype.filter called on incompatible receiver a Date.
built-ins/Array/prototype/filter/15.4.4.20-1-12.js # TypeError: Array.prototype.filter called on incompatible receiver a RegExp.
built-ins/Array/prototype/filter/15.4.4.20-1-13.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-1-14.js # TypeError: Array.prototype.filter called on incompatible receiver an Error.
built-ins/Array/prototype/filter/15.4.4.20-1-3.js # TypeError: Array.prototype.filter called on incompatible receiver a boolean.
built-ins/Array/prototype/filter/15.4.4.20-1-5.js # TypeError: Array.prototype.filter called on incompatible receiver a number.
built-ins/Array/prototype/filter/15.4.4.20-1-7.js # TypeError: Array.prototype.filter called on incompatible receiver a string.
built-ins/Array/prototype/filter/15.4.4.20-10-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/filter/15.4.4.20-2-1.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-2-14.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-2-19.js # TypeError: Array.prototype.filter called on incompatible receiver a function.
built-ins/Array/prototype/filter/15.4.4.20-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-3-1.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-10.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-11.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-12.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-13.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-14.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-15.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-16.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-17.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-18.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-19.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-2.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-20.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-21.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-22.js # firstStepOccured !== true
built-ins/Array/prototype/filter/15.4.4.20-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-3-24.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-25.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-3.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-4.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-5.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-6.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-7.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-3-9.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-5-10.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-14.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-15.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-16.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-17.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-18.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-19.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-5-2.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-22.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-23.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-24.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-3.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-4.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-5.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-5-6.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/filter/15.4.4.20-5-9.js # newArr[0] Expected SameValue(«undefined», «11») to be true
built-ins/Array/prototype/filter/15.4.4.20-6-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/filter/15.4.4.20-6-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/filter/15.4.4.20-6-4.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -30,11 +166,121 @@ built-ins/Array/prototype/filter/15.4.4.20-6-6.js # … cannot be constructed:
built-ins/Array/prototype/filter/15.4.4.20-6-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/filter/15.4.4.20-6-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/filter/15.4.4.20-9-6.js # resArr.length Expected SameValue(«3», «4») to be true
built-ins/Array/prototype/filter/15.4.4.20-9-8.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-i-1.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-9-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/filter/15.4.4.20-9-c-i-8.js # newArr.length Expected SameValue(«0», «1») to be true
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-16.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-17.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-18.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-19.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-20.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-21.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-22.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-23.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-6.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-7.js # Expected a Error but got a TypeError
built-ins/Array/prototype/filter/15.4.4.20-9-c-ii-8.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-1.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-2.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-3.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-1-4.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-2.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-28.js # newArr.length Expected SameValue(«0», «1») to be true
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-29.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-3.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-4.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/15.4.4.20-9-c-iii-5.js # TypeError: Array.prototype.filter called on incompatible receiver a data object.
built-ins/Array/prototype/filter/call-with-boolean.js # TypeError: Array.prototype.filter called on incompatible receiver a boolean.
built-ins/Array/prototype/filter/create-ctor-non-object.js # null value Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Array/prototype/find/call-with-boolean.js # TypeError: Array.prototype.find called on incompatible receiver a boolean.
built-ins/Array/prototype/find/predicate-call-this-strict.js # Expected SameValue(«undefined», «object») to be true
built-ins/Array/prototype/findIndex/call-with-boolean.js # TypeError: Array.prototype.findIndex called on incompatible receiver a boolean.
built-ins/Array/prototype/findIndex/predicate-call-this-strict.js # Expected SameValue(«undefined», «object») to be true
built-ins/Array/prototype/findLast/call-with-boolean.js # TypeError: Array.prototype.findLast called on incompatible receiver a boolean.
built-ins/Array/prototype/findLast/maximum-index.js # TypeError: Array.prototype.findLast called on incompatible receiver a data object.
built-ins/Array/prototype/findLast/predicate-call-this-strict.js # Expected SameValue(«undefined», «object») to be true
built-ins/Array/prototype/findLastIndex/call-with-boolean.js # TypeError: Array.prototype.findLastIndex called on incompatible receiver a boolean.
built-ins/Array/prototype/findLastIndex/maximum-index.js # TypeError: Array.prototype.findLastIndex called on incompatible receiver a data object.
built-ins/Array/prototype/findLastIndex/predicate-call-this-strict.js # Expected SameValue(«undefined», «object») to be true
built-ins/Array/prototype/flat/array-like-objects.js # TypeError: Array.prototype.flat called on incompatible receiver a data object.
built-ins/Array/prototype/flat/call-with-boolean.js # TypeError: Array.prototype.flat called on incompatible receiver a boolean.
built-ins/Array/prototype/flat/non-object-ctor-throws.js # null value Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Array/prototype/flat/proxy-access-count.js # ReferenceError: Unknown identifier '…'.
built-ins/Array/prototype/flatMap/call-with-boolean.js # TypeError: Array.prototype.flatMap called on incompatible receiver a boolean.
built-ins/Array/prototype/flatMap/proxy-access-count.js # ReferenceError: Unknown identifier '…'.
built-ins/Array/prototype/flatMap/thisArg-argument.js # Actual [undefined] and expected ["TestString"] should have the same contents. The value of actual is
built-ins/Array/prototype/forEach/15.4.4.18-1-10.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-1-11.js # TypeError: Array.prototype.forEach called on incompatible receiver a Date.
built-ins/Array/prototype/forEach/15.4.4.18-1-12.js # TypeError: Array.prototype.forEach called on incompatible receiver a RegExp.
built-ins/Array/prototype/forEach/15.4.4.18-1-13.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-1-14.js # TypeError: Array.prototype.forEach called on incompatible receiver an Error.
built-ins/Array/prototype/forEach/15.4.4.18-1-3.js # TypeError: Array.prototype.forEach called on incompatible receiver a boolean.
built-ins/Array/prototype/forEach/15.4.4.18-1-5.js # TypeError: Array.prototype.forEach called on incompatible receiver a number.
built-ins/Array/prototype/forEach/15.4.4.18-1-7.js # TypeError: Array.prototype.forEach called on incompatible receiver a string.
built-ins/Array/prototype/forEach/15.4.4.18-2-1.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-2-14.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-2-17.js # func(12, 11) !== true
built-ins/Array/prototype/forEach/15.4.4.18-2-19.js # TypeError: Array.prototype.forEach called on incompatible receiver a function.
built-ins/Array/prototype/forEach/15.4.4.18-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-3-1.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-10.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-11.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-12.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-13.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-14.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-15.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-16.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-17.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-18.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-19.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-2.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-20.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-21.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-3-24.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-25.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-3.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-4.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-5.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-6.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-7.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-3-9.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-5-10.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-14.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-15.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-16.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-17.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-18.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-19.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-5-2.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-22.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-23.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-24.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-3.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-4.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-5.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-5-6.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/forEach/15.4.4.18-5-9.js # result !== true
built-ins/Array/prototype/forEach/15.4.4.18-7-5.js # callCnt Expected SameValue(«4», «5») to be true
built-ins/Array/prototype/forEach/15.4.4.18-7-8.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-1.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/forEach/15.4.4.18-7-c-i-8.js # testResult !== true
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-16.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-17.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-18.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-19.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-20.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-21.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-22.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-23.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-6.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-7.js # Expected a Error but got a TypeError
built-ins/Array/prototype/forEach/15.4.4.18-7-c-ii-8.js # TypeError: Array.prototype.forEach called on incompatible receiver a data object.
built-ins/Array/prototype/forEach/15.4.4.18-8-10.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/forEach/15.4.4.18-8-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/forEach/15.4.4.18-8-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -44,21 +290,135 @@ built-ins/Array/prototype/forEach/15.4.4.18-8-6.js # … cannot be constructed:
built-ins/Array/prototype/forEach/15.4.4.18-8-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/forEach/15.4.4.18-8-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/forEach/15.4.4.18-8-9.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/forEach/call-with-boolean.js # TypeError: Array.prototype.forEach called on incompatible receiver a boolean.
built-ins/Array/prototype/includes/call-with-boolean.js # TypeError: Array.prototype.includes called on incompatible receiver a boolean.
built-ins/Array/prototype/includes/length-boundaries.js # TypeError: Array.prototype.includes called on incompatible receiver a data object.
built-ins/Array/prototype/includes/return-abrupt-tointeger-fromindex.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/includes/return-abrupt-tonumber-length.js # valueOf Expected a Test262Error but got a TypeError
built-ins/Array/prototype/includes/tointeger-fromindex.js # Array.includes expects start index to be a number.
built-ins/Array/prototype/includes/tolength-length.js # TypeError: Array.prototype.includes called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-1-10.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-1-11.js # TypeError: Array.prototype.indexOf called on incompatible receiver a Date.
built-ins/Array/prototype/indexOf/15.4.4.14-1-12.js # TypeError: Array.prototype.indexOf called on incompatible receiver a RegExp.
built-ins/Array/prototype/indexOf/15.4.4.14-1-13.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-1-14.js # TypeError: Array.prototype.indexOf called on incompatible receiver an Error.
built-ins/Array/prototype/indexOf/15.4.4.14-1-3.js # TypeError: Array.prototype.indexOf called on incompatible receiver a boolean.
built-ins/Array/prototype/indexOf/15.4.4.14-1-5.js # TypeError: Array.prototype.indexOf called on incompatible receiver a number.
built-ins/Array/prototype/indexOf/15.4.4.14-1-7.js # TypeError: Array.prototype.indexOf called on incompatible receiver a string.
built-ins/Array/prototype/indexOf/15.4.4.14-1-9.js # TypeError: Array.prototype.indexOf called on incompatible receiver a function.
built-ins/Array/prototype/indexOf/15.4.4.14-2-1.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-2-14.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-2-17.js # func(0, true) !== true
built-ins/Array/prototype/indexOf/15.4.4.14-2-19.js # TypeError: Array.prototype.indexOf called on incompatible receiver a function.
built-ins/Array/prototype/indexOf/15.4.4.14-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/indexOf/15.4.4.14-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/indexOf/15.4.4.14-3-1.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-10.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-11.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-12.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-13.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-14.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-15.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-16.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-17.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-18.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-19.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-2.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-20.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-21.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-22.js # toStringAccessed
built-ins/Array/prototype/indexOf/15.4.4.14-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/indexOf/15.4.4.14-3-24.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-25.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-28.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-29.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-3.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-4.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-5.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-6.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-7.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-8.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-3-9.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-10.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-11.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-2.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-3.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-4.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-5.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-6.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-7.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-8.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-4-9.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-5-23.js # Array.indexOf expects start index to be a number.
built-ins/Array/prototype/indexOf/15.4.4.14-5-24.js # toStringAccessed
built-ins/Array/prototype/indexOf/15.4.4.14-5-25.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/indexOf/15.4.4.14-9-7.js # Array assignment result contains a circular value.
built-ins/Array/prototype/indexOf/15.4.4.14-9-a-2.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-9-a-3.js # Array.indexOf expects start index to be a number.
built-ins/Array/prototype/indexOf/15.4.4.14-9-a-5.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-9-a-6.js # Array.indexOf expects start index to be a number.
built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-1.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-4.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-7.js # [, , , ].indexOf(true) Expected SameValue(«-1», «0») to be true
built-ins/Array/prototype/indexOf/15.4.4.14-9-b-i-8.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/indexOf/call-with-boolean.js # TypeError: Array.prototype.indexOf called on incompatible receiver a boolean.
built-ins/Array/prototype/indexOf/length-near-integer-limit.js # TypeError: Array.prototype.indexOf called on incompatible receiver a data object.
built-ins/Array/prototype/join/S15.4.4.5_A2_T1.js # Array.prototype.join called on incompatible receiver a data object.
built-ins/Array/prototype/join/S15.4.4.5_A2_T4.js # Array.prototype.join called on incompatible receiver a data object.
built-ins/Array/prototype/join/S15.4.4.5_A3.1_T2.js # Array.join expects zero arguments or one string separator.
built-ins/Array/prototype/join/S15.4.4.5_A3.2_T2.js # x.join() must return "*" Expected SameValue(«"[object Object]"», «"*"») to be true
built-ins/Array/prototype/join/S15.4.4.5_A4_T3.js # Array.prototype.join called on incompatible receiver a data object.
built-ins/Array/prototype/join/S15.4.4.5_A5_T1.js # #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.join() === "0,1". Actual: 0,
built-ins/Array/prototype/join/call-with-boolean.js # TypeError: Array.prototype.join called on incompatible receiver a boolean.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-10.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-11.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a Date.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-12.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a RegExp.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-13.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-14.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver an Error.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-3.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a boolean.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-5.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a number.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-7.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a string.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-1-9.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a function.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-1.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-14.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-17.js # func(0, targetObj) !== true
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-19.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a function.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/lastIndexOf/15.4.4.15-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-1.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-10.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-11.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-12.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-13.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-14.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-15.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-16.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-17.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-19.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-2.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-20.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-21.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-22.js # toStringAccessed
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-24.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-25.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-28.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-3.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-4.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-5.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-6.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-7.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-3-9.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-10.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-11.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-2.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-3.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-4.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-5.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-6.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-7.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-8.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-4-9.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-21.js # Array.lastIndexOf expects start index to be a number.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-22.js # Array.lastIndexOf expects start index to be a number.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-23.js # Array.lastIndexOf expects start index to be a number.
@@ -66,12 +426,103 @@ built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-24.js # toStringAccessed
built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-25.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-4.js # a.lastIndexOf(2,undefined) Expected SameValue(«1», «-1») to be true
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-7.js # Array assignment result contains a circular value.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-2.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-3.js # Array.lastIndexOf expects start index to be a number.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-a-5.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-1.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-4.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-7.js # [, , , ].lastIndexOf(true) Expected SameValue(«-1», «0») to be true
built-ins/Array/prototype/lastIndexOf/15.4.4.15-8-b-i-8.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/lastIndexOf/call-with-boolean.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a boolean.
built-ins/Array/prototype/lastIndexOf/length-near-integer-limit.js # TypeError: Array.prototype.lastIndexOf called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-1-10.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-1-11.js # TypeError: Array.prototype.map called on incompatible receiver a Date.
built-ins/Array/prototype/map/15.4.4.19-1-12.js # TypeError: Array.prototype.map called on incompatible receiver a RegExp.
built-ins/Array/prototype/map/15.4.4.19-1-13.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-1-14.js # TypeError: Array.prototype.map called on incompatible receiver an Error.
built-ins/Array/prototype/map/15.4.4.19-1-3.js # TypeError: Array.prototype.map called on incompatible receiver a boolean.
built-ins/Array/prototype/map/15.4.4.19-1-5.js # TypeError: Array.prototype.map called on incompatible receiver a number.
built-ins/Array/prototype/map/15.4.4.19-1-7.js # TypeError: Array.prototype.map called on incompatible receiver a string.
built-ins/Array/prototype/map/15.4.4.19-2-1.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-2-14.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-2-19.js # TypeError: Array.prototype.map called on incompatible receiver a function.
built-ins/Array/prototype/map/15.4.4.19-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-3-1.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-10.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-11.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-12.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-13.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-14.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/map/15.4.4.19-3-15.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-16.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-17.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-18.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-19.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-2.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-20.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-21.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-3-24.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-25.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-28.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/map/15.4.4.19-3-29.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/map/15.4.4.19-3-3.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-4.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-5.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-6.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-7.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-3-8.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/map/15.4.4.19-3-9.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-5-10.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-14.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-15.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-16.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-17.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-18.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-19.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-5-2.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-22.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-23.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-24.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-3.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-4.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-5.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-5-6.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/map/15.4.4.19-5-9.js # testResult[0] Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-8-6.js # resArr[4] Expected SameValue(«undefined», «1») to be true
built-ins/Array/prototype/map/15.4.4.19-8-8.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-i-1.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-8-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-8-c-i-8.js # newArr[1] Expected SameValue(«13», «true») to be true
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-16.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-17.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-18.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-19.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-20.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-21.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-22.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-23.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-6.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-7.js # Expected a Error but got a TypeError
built-ins/Array/prototype/map/15.4.4.19-8-c-ii-8.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-iii-2.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-iii-3.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-iii-4.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-8-c-iii-5.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-9-10.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-11.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-12.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/map/15.4.4.19-9-5.js # TypeError: Array.prototype.map called on incompatible receiver a data object.
built-ins/Array/prototype/map/15.4.4.19-9-6.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-7.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-8.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/15.4.4.19-9-9.js # TypeError: Foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/map/call-with-boolean.js # TypeError: Array.prototype.map called on incompatible receiver a boolean.
built-ins/Array/prototype/map/create-ctor-non-object.js # null value Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Array/prototype/map/create-non-array-invalid-len.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/pop/S15.4.4.6_A2_T1.js # Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/pop/S15.4.4.6_A2_T4.js # Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/pop/S15.4.4.6_A3_T1.js # Array.prototype.pop called on incompatible receiver a data object.
@@ -79,6 +530,9 @@ built-ins/Array/prototype/pop/S15.4.4.6_A3_T2.js # Array.prototype.pop called o
built-ins/Array/prototype/pop/S15.4.4.6_A3_T3.js # Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/pop/S15.4.4.6_A4_T1.js # #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop() === 1. Actual: undefined
built-ins/Array/prototype/pop/S15.4.4.6_A4_T2.js # Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/pop/call-with-boolean.js # TypeError: Array.prototype.pop called on incompatible receiver a boolean.
built-ins/Array/prototype/pop/clamps-to-integer-limit.js # TypeError: Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/pop/length-near-integer-limit.js # TypeError: Array.prototype.pop called on incompatible receiver a data object.
built-ins/Array/prototype/push/S15.4.4.7_A2_T1.js # Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/S15.4.4.7_A2_T3.js # Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/S15.4.4.7_A3.js # The value of x[4294967295] is expected to be "x" Expected SameValue(«undefined», «"x"») to be true
@@ -86,10 +540,51 @@ built-ins/Array/prototype/push/S15.4.4.7_A4_T1.js # Array.prototype.push called
built-ins/Array/prototype/push/S15.4.4.7_A4_T2.js # Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/S15.4.4.7_A4_T3.js # Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/S15.4.4.7_A5_T1.js # Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/call-with-boolean.js # TypeError: Array.prototype.push called on incompatible receiver a boolean.
built-ins/Array/prototype/push/clamps-to-integer-limit.js # TypeError: Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/push/length-near-integer-limit.js # TypeError: Array.prototype.push called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-1-10.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-1-11.js # TypeError: Array.prototype.reduce called on incompatible receiver a Date.
built-ins/Array/prototype/reduce/15.4.4.21-1-12.js # TypeError: Array.prototype.reduce called on incompatible receiver a RegExp.
built-ins/Array/prototype/reduce/15.4.4.21-1-13.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-1-14.js # TypeError: Array.prototype.reduce called on incompatible receiver an Error.
built-ins/Array/prototype/reduce/15.4.4.21-1-3.js # TypeError: Array.prototype.reduce called on incompatible receiver a boolean.
built-ins/Array/prototype/reduce/15.4.4.21-1-5.js # TypeError: Array.prototype.reduce called on incompatible receiver a number.
built-ins/Array/prototype/reduce/15.4.4.21-1-7.js # TypeError: Array.prototype.reduce called on incompatible receiver a string.
built-ins/Array/prototype/reduce/15.4.4.21-10-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-10-4.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-10-6.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-10-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-2-1.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-2-14.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-2-17.js # func(12, 11) Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/reduce/15.4.4.21-2-19.js # TypeError: Array.prototype.reduce called on incompatible receiver a function.
built-ins/Array/prototype/reduce/15.4.4.21-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-3-1.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-10.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-11.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-12.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-13.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-14.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-15.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-16.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-17.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-18.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-19.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-2.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-20.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-21.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-22.js # toStringAccessed !== true
built-ins/Array/prototype/reduce/15.4.4.21-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-3-24.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-25.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-3.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-4.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-5.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-6.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-7.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-3-9.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-5-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-5-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-5-4.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -105,14 +600,77 @@ built-ins/Array/prototype/reduce/15.4.4.21-7-6.js # … cannot be constructed:
built-ins/Array/prototype/reduce/15.4.4.21-7-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-7-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-7-9.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-1.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-29.js # TypeError: Array.prototype.reduce called on incompatible receiver a function.
built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-8-b-iii-1-8.js # Array.reduce of an empty array with no initial value.
built-ins/Array/prototype/reduce/15.4.4.21-8-c-4.js # Array.reduce of an empty array with no initial value.
built-ins/Array/prototype/reduce/15.4.4.21-9-6.js # res Expected SameValue(«"123"», «"1235"») to be true
built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-1.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-29.js # TypeError: Array.prototype.reduce called on incompatible receiver a function.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduce/15.4.4.21-9-c-i-8.js # testResult !== true
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-16.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-18.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-20.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-21.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-22.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-23.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-24.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-25.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-26.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-30.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-31.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-32.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-33.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-34.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-35.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-37.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-7.js # Expected a Error but got a TypeError
built-ins/Array/prototype/reduce/15.4.4.21-9-c-ii-8.js # TypeError: Array.prototype.reduce called on incompatible receiver a data object.
built-ins/Array/prototype/reduce/call-with-boolean.js # TypeError: Array.prototype.reduce called on incompatible receiver a boolean.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-10.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-11.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a Date.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-12.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a RegExp.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-13.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-14.js # TypeError: Array.prototype.reduceRight called on incompatible receiver an Error.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-3.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a boolean.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-5.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a number.
built-ins/Array/prototype/reduceRight/15.4.4.22-1-7.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a string.
built-ins/Array/prototype/reduceRight/15.4.4.22-10-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-10-4.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-10-6.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-10-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-2-1.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-2-14.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-2-19.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a function.
built-ins/Array/prototype/reduceRight/15.4.4.22-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-3-1.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-10.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-11.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-12.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-13.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-14.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-15.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-16.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-17.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-18.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-19.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-2.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-20.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-21.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-22.js # toStringAccessed !== true
built-ins/Array/prototype/reduceRight/15.4.4.22-3-24.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-25.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-3.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-4.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-5.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-6.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-7.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-3-9.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-5-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-5-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-5-4.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -128,20 +686,50 @@ built-ins/Array/prototype/reduceRight/15.4.4.22-7-6.js # … cannot be construc
built-ins/Array/prototype/reduceRight/15.4.4.22-7-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-7-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-7-9.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-1.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-29.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a function.
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-8-b-iii-1-8.js # Array.reduceRight of an empty array with no initial value.
built-ins/Array/prototype/reduceRight/15.4.4.22-8-c-4.js # Array.reduceRight of an empty array with no initial value.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-6.js # res Expected SameValue(«"91"», «"151"») to be true
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-1.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-29.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a function.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-i-8.js # testResult !== true
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-16.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-20.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-21.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-22.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-23.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-24.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-25.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-26.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-30.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-31.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-32.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-33.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-34.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-35.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-37.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-7.js # Expected a Test262Error but got a TypeError
built-ins/Array/prototype/reduceRight/15.4.4.22-9-c-ii-8.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a data object.
built-ins/Array/prototype/reduceRight/call-with-boolean.js # TypeError: Array.prototype.reduceRight called on incompatible receiver a boolean.
built-ins/Array/prototype/reduceRight/length-near-integer-limit.js # The value of acc.length is expected to be 2 Expected SameValue(«undefined», «2») to be true
built-ins/Array/prototype/reverse/S15.4.4.8_A2_T1.js # Array.prototype.reverse called on incompatible receiver a data object.
built-ins/Array/prototype/reverse/S15.4.4.8_A3_T3.js # Array.prototype.reverse called on incompatible receiver a data object.
built-ins/Array/prototype/reverse/S15.4.4.8_A4_T1.js # #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.reverse(); x[0] === 1. Actual: undefined
built-ins/Array/prototype/reverse/S15.4.4.8_A4_T2.js # Array.prototype.reverse called on incompatible receiver a data object.
built-ins/Array/prototype/reverse/call-with-boolean.js # TypeError: Array.prototype.reverse called on incompatible receiver a boolean.
built-ins/Array/prototype/reverse/length-exceeding-integer-limit-with-object.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/shift/S15.4.4.9_A2_T1.js # Array.prototype.shift called on incompatible receiver a data object.
built-ins/Array/prototype/shift/S15.4.4.9_A2_T4.js # Array.prototype.shift called on incompatible receiver a data object.
built-ins/Array/prototype/shift/S15.4.4.9_A2_T5.js # Array.prototype.shift called on incompatible receiver a data object.
built-ins/Array/prototype/shift/S15.4.4.9_A3_T3.js # Array.prototype.shift called on incompatible receiver a data object.
built-ins/Array/prototype/shift/S15.4.4.9_A4_T1.js # #2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift(); x[0] === 1. Actual: undefined
built-ins/Array/prototype/shift/S15.4.4.9_A4_T2.js # Array.prototype.shift called on incompatible receiver a data object.
built-ins/Array/prototype/shift/call-with-boolean.js # TypeError: Array.prototype.shift called on incompatible receiver a boolean.
built-ins/Array/prototype/slice/S15.4.4.10_A2.2_T5.js # Array.slice expects end to be a number.
built-ins/Array/prototype/slice/S15.4.4.10_A2_T1.js # Array.prototype.slice called on incompatible receiver a data object.
built-ins/Array/prototype/slice/S15.4.4.10_A2_T2.js # Array.prototype.slice called on incompatible receiver a data object.
@@ -153,9 +741,89 @@ built-ins/Array/prototype/slice/S15.4.4.10_A3_T1.js # Expected a RangeError but
built-ins/Array/prototype/slice/S15.4.4.10_A3_T2.js # Expected a RangeError but got a TypeError
built-ins/Array/prototype/slice/S15.4.4.10_A3_T3.js # Array.prototype.slice called on incompatible receiver a data object.
built-ins/Array/prototype/slice/S15.4.4.10_A4_T1.js # #3: Array.prototype[1] = 1; x = [0]; x.length = 2; var arr = x.slice(); arr.hasOwnProperty('…') ===
built-ins/Array/prototype/slice/call-with-boolean.js # TypeError: Array.prototype.slice called on incompatible receiver a boolean.
built-ins/Array/prototype/slice/create-ctor-non-object.js # null value Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Array/prototype/slice/length-exceeding-integer-limit-proxied-array.js # ReferenceError: Unknown identifier '…'.
built-ins/Array/prototype/slice/length-exceeding-integer-limit.js # TypeError: Array.prototype.slice called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-1-10.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-1-11.js # TypeError: Array.prototype.some called on incompatible receiver a Date.
built-ins/Array/prototype/some/15.4.4.17-1-12.js # TypeError: Array.prototype.some called on incompatible receiver a RegExp.
built-ins/Array/prototype/some/15.4.4.17-1-13.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-1-14.js # TypeError: Array.prototype.some called on incompatible receiver an Error.
built-ins/Array/prototype/some/15.4.4.17-1-3.js # TypeError: Array.prototype.some called on incompatible receiver a boolean.
built-ins/Array/prototype/some/15.4.4.17-1-5.js # TypeError: Array.prototype.some called on incompatible receiver a number.
built-ins/Array/prototype/some/15.4.4.17-1-7.js # TypeError: Array.prototype.some called on incompatible receiver a string.
built-ins/Array/prototype/some/15.4.4.17-2-1.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-2-14.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-2-17.js # func(9, 11) !== true
built-ins/Array/prototype/some/15.4.4.17-2-19.js # TypeError: Array.prototype.some called on incompatible receiver a function.
built-ins/Array/prototype/some/15.4.4.17-2-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-2-6.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-3-1.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-10.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-11.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-12.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-13.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-14.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-15.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-16.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-17.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-18.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-19.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-2.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-20.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-21.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-22.js # toStringAccessed !== true
built-ins/Array/prototype/some/15.4.4.17-3-23.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-3-24.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-25.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-28.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-29.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-3.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-4.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-5.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-6.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-7.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-8.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-3-9.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-5-10.js # [11].some(callbackfn, objArray) !== true
built-ins/Array/prototype/some/15.4.4.17-5-14.js # [11].some(callbackfn, Math) !== true
built-ins/Array/prototype/some/15.4.4.17-5-15.js # [11].some(callbackfn, objDate) !== true
built-ins/Array/prototype/some/15.4.4.17-5-16.js # [11].some(callbackfn, objRegExp) !== true
built-ins/Array/prototype/some/15.4.4.17-5-17.js # [11].some(callbackfn, JSON) !== true
built-ins/Array/prototype/some/15.4.4.17-5-18.js # [11].some(callbackfn, objError) !== true
built-ins/Array/prototype/some/15.4.4.17-5-19.js # [11].some(callbackfn, arg) !== true
built-ins/Array/prototype/some/15.4.4.17-5-2.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-22.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-23.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-24.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-3.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-4.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-5.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-5-6.js # TypeError: Cannot read properties of undefined (reading '…').
built-ins/Array/prototype/some/15.4.4.17-5-9.js # [11].some(callbackfn, objFunction) !== true
built-ins/Array/prototype/some/15.4.4.17-7-6.js # res Expected SameValue(«false», «true») to be true
built-ins/Array/prototype/some/15.4.4.17-7-8.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-i-1.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-i-3.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-7-c-i-7.js # TypeError: Con cannot be constructed: user-defined constructors and classes are not supported. Call
built-ins/Array/prototype/some/15.4.4.17-7-c-i-8.js # [, ].some(callbackfn) !== true
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-16.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-17.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-18.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-19.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-20.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-21.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-22.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-23.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-6.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-7.js # Expected a Error but got a TypeError
built-ins/Array/prototype/some/15.4.4.17-7-c-ii-8.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-iii-1.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-iii-2.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-iii-26.js # [11].some(callbackfn) !== true
built-ins/Array/prototype/some/15.4.4.17-7-c-iii-3.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-7-c-iii-4.js # TypeError: Array.prototype.some called on incompatible receiver a data object.
built-ins/Array/prototype/some/15.4.4.17-8-10.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/some/15.4.4.17-8-2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/some/15.4.4.17-8-3.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
@@ -164,6 +832,7 @@ built-ins/Array/prototype/some/15.4.4.17-8-5.js # … cannot be constructed: us
built-ins/Array/prototype/some/15.4.4.17-8-6.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/some/15.4.4.17-8-7.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/some/15.4.4.17-8-8.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
built-ins/Array/prototype/some/call-with-boolean.js # TypeError: Array.prototype.some called on incompatible receiver a boolean.
built-ins/Array/prototype/sort/S15.4.4.11_A2.1_T3.js # #1: Check ToString operator
built-ins/Array/prototype/sort/S15.4.4.11_A2.2_T3.js # #1: Check ToString operator
built-ins/Array/prototype/sort/S15.4.4.11_A3_T1.js # Array.prototype.sort called on incompatible receiver a data object.
@@ -182,44 +851,76 @@ built-ins/Array/prototype/splice/S15.4.4.12_A3_T3.js # Array.prototype.splice c
built-ins/Array/prototype/splice/S15.4.4.12_A4_T1.js # Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/S15.4.4.12_A4_T2.js # Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/S15.4.4.12_A4_T3.js # Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/call-with-boolean.js # TypeError: Array.prototype.splice called on incompatible receiver a boolean.
built-ins/Array/prototype/splice/clamps-length-to-integer-limit.js # TypeError: Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/create-ctor-non-object.js # null value Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Array/prototype/splice/length-and-deleteCount-exceeding-integer-limit.js # TypeError: Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/length-exceeding-integer-limit-shrink-array.js # TypeError: Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/splice/length-near-integer-limit-grow-array.js # TypeError: Array.prototype.splice called on incompatible receiver a data object.
built-ins/Array/prototype/toLocaleString/S15.4.4.3_A3_T1.js # #1: var n = 0; var obj = {toLocaleString: function() {n++}}; Array.prototype[1] = obj; x = [obj]; x.
built-ins/Array/prototype/toReversed/holes-not-preserved.js # Actual [4, undefined, 2, undefined, 0] and expected [4, 3, 2, undefined, 0] should have the same con
built-ins/Array/prototype/toReversed/length-casted-to-zero.js # TypeError: Array.prototype.toReversed called on incompatible receiver a data object.
built-ins/Array/prototype/toReversed/length-exceeding-array-length-limit.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/toReversed/length-tolength.js # TypeError: Array.prototype.toReversed called on incompatible receiver a data object.
built-ins/Array/prototype/toReversed/this-value-boolean.js # TypeError: Array.prototype.toReversed called on incompatible receiver a boolean.
built-ins/Array/prototype/toSorted/holes-not-preserved.js # Actual [1, 3, 4, undefined, undefined] and expected [1, 2, 3, 4, undefined] should have the same con
built-ins/Array/prototype/toSorted/length-casted-to-zero.js # TypeError: Array.prototype.toSorted called on incompatible receiver a data object.
built-ins/Array/prototype/toSorted/length-exceeding-array-length-limit.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/toSorted/length-tolength.js # TypeError: Array.prototype.toSorted called on incompatible receiver a data object.
built-ins/Array/prototype/toSorted/this-value-boolean.js # TypeError: Array.prototype.toSorted called on incompatible receiver a boolean.
built-ins/Array/prototype/toSpliced/holes-not-preserved.js # Actual [0, undefined, 2, undefined, 4] and expected [0, undefined, 2, 3, 4] should have the same con
built-ins/Array/prototype/toSpliced/length-casted-to-zero.js # TypeError: Array.prototype.toSpliced called on incompatible receiver a data object.
built-ins/Array/prototype/toSpliced/length-clamped-to-2pow53minus1.js # TypeError: Array.prototype.toSpliced called on incompatible receiver a data object.
built-ins/Array/prototype/toSpliced/length-exceeding-array-length-limit.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/toSpliced/length-tolength.js # TypeError: Array.prototype.toSpliced called on incompatible receiver a data object.
built-ins/Array/prototype/toSpliced/this-value-boolean.js # TypeError: Array.prototype.toSpliced called on incompatible receiver a boolean.
built-ins/Array/prototype/toString/S15.4.4.2_A1_T4.js # Expected a Test262Error to be thrown but no exception was thrown at all
built-ins/Array/prototype/toString/S15.4.4.2_A3_T1.js # #1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.toString() === "0,1". Actual: 0,
built-ins/Array/prototype/toString/call-with-boolean.js # TypeError: Array.prototype.toString called on incompatible receiver a boolean.
built-ins/Array/prototype/unshift/S15.4.4.13_A2_T1.js # Array.prototype.unshift called on incompatible receiver a data object.
built-ins/Array/prototype/unshift/S15.4.4.13_A2_T3.js # Array.prototype.unshift called on incompatible receiver a data object.
built-ins/Array/prototype/unshift/S15.4.4.13_A3_T2.js # Array.prototype.unshift called on incompatible receiver a data object.
built-ins/Array/prototype/unshift/S15.4.4.13_A4_T1.js # Array.prototype.unshift called on incompatible receiver a data object.
built-ins/Array/prototype/unshift/S15.4.4.13_A4_T2.js # #3: Array.prototype[0] = 1; x = []; x.length = 1; x.unshift(0); x[1] === 1. Actual: undefined
built-ins/Array/prototype/unshift/call-with-boolean.js # TypeError: Array.prototype.unshift called on incompatible receiver a boolean.
built-ins/Array/prototype/unshift/clamps-to-integer-limit.js # TypeError: Array.prototype.unshift called on incompatible receiver a data object.
built-ins/Array/prototype/unshift/length-near-integer-limit.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/with/length-exceeding-array-length-limit.js # TypeError: Only init object properties are supported.
built-ins/Array/prototype/with/length-tolength.js # TypeError: Array.prototype.with called on incompatible receiver a data object.
built-ins/Array/prototype/with/this-value-boolean.js # TypeError: Array.prototype.with called on incompatible receiver a boolean.
built-ins/Function/prototype/bind/15.3.4.5-2-6.js # TypeError: Object(number) wrapper objects are not supported; use the primitive value directly.
built-ins/Function/prototype/bind/15.3.4.5-20-2.js # Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Function/prototype/bind/15.3.4.5-20-3.js # Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Function/prototype/bind/15.3.4.5-21-2.js # Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Function/prototype/bind/15.3.4.5-21-3.js # Expected a TypeError to be thrown but no exception was thrown at all
built-ins/Function/prototype/bind/S15.3.4.5_A1.js # baz() throws a TypeError exception Expected a TypeError to be thrown but no exception was thrown at
built-ins/Function/prototype/bind/S15.3.4.5_A2.js # baz() throws a TypeError exception Expected a TypeError to be thrown but no exception was thrown at
built-ins/Iterator/from/return-method-returns-iterator-result.js # Iterator next must be a function.
built-ins/Iterator/prototype/Symbol.iterator/is-function.js # every built-in collection iterator shares one prototype, so its parent is Object.prototype
built-ins/Iterator/prototype/drop/limit-tonumber-throws.js # Expected a Test262Error but got a RangeError
built-ins/Iterator/prototype/drop/limit-tonumber.js # Iterator.prototype.drop expects a non-negative count, received NaN.
built-ins/Iterator/prototype/drop/this-non-callable-next.js # TypeError: Iterator next must be a function.
built-ins/Iterator/prototype/filter/this-non-callable-next.js # TypeError: Iterator next must be a function.
built-ins/Iterator/prototype/flatMap/this-non-callable-next.js # TypeError: Iterator next must be a function.
built-ins/Iterator/prototype/map/this-non-callable-next.js # TypeError: Iterator next must be a function.
built-ins/Iterator/prototype/take/limit-tonumber-throws.js # Expected a Test262Error but got a RangeError
built-ins/Iterator/prototype/take/limit-tonumber.js # Iterator.prototype.take expects a non-negative count, received NaN.
built-ins/Object/freeze/throws-when-false.js # Unknown identifier 'Proxy'.
built-ins/Object/getPrototypeOf/15.2.3.2-2-12.js # Object.getPrototypeOf(EvalError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-13.js # Object.getPrototypeOf(RangeError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-14.js # Object.getPrototypeOf(ReferenceError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-15.js # Object.getPrototypeOf(SyntaxError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-16.js # Object.getPrototypeOf(TypeError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-17.js # Object.getPrototypeOf(URIError) Expected SameValue(«», «Error») to be true
built-ins/Object/getPrototypeOf/15.2.3.2-2-2.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/isExtensible/15.2.3.13-2-24.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/isExtensible/15.2.3.13-2-25.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/isExtensible/15.2.3.13-2-26.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/isExtensible/15.2.3.13-2-27.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/preventExtensions/15.2.3.10-3-24.js # … cannot be constructed: user-defined constructors and classes are not supported.
built-ins/Object/preventExtensions/throws-when-false.js # Unknown identifier 'Proxy'.
built-ins/Iterator/prototype/take/this-non-callable-next.js # TypeError: Iterator next must be a function.
language/arguments-object/10.6-13-c-1-s.js # Expected a TypeError to be thrown but no exception was thrown at all
language/arguments-object/10.6-14-c-4-s.js # Expected a TypeError to be thrown but no exception was thrown at all
language/arguments-object/10.6-2gs.js # Expected a TypeError to be thrown but no exception was thrown at all
language/arguments-object/S10.6_A3_T1.js # #1: arguments object doesn't exists
language/arguments-object/S10.6_A5_T3.js # #1: arguments object don't exists
language/arguments-object/S10.6_A5_T4.js # #1: arguments object don't exists
language/expressions/tagged-template/constructor-invocation.js # The called value cannot be constructed: user-defined constructors and classes are not supported.
language/expressions/tagged-template/template-object-frozen-strict.js # Expected a TypeError to be thrown but no exception was thrown at all
language/expressions/this/11.1.1-1.js # Expected SameValue(«undefined», «undefined») to be false
language/statements/async-generator/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/async-generator/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/async-generator/dstr/dflt-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/async-generator/return-undefined-implicit-and-explicit.js # Actual ["tick 1", "tick 2", "g1 ret", "g2 ret", "g3 ret", "g4 ret"] and expected ["tick 1", "g1 ret"
language/statements/const/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/const/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for-await-of/async-func-decl-dstr-obj-empty-bool.js # TypeError: Object destructuring requires a data object or array value, received a boolean.
language/statements/for-await-of/async-func-decl-dstr-obj-empty-num.js # TypeError: Object destructuring requires a data object or array value, received a number.
language/statements/for-await-of/async-func-decl-dstr-obj-empty-string.js # TypeError: Object destructuring requires a data object or array value, received a string.
@@ -230,51 +931,89 @@ language/statements/for-await-of/async-gen-decl-dstr-obj-empty-num.js # TypeErr
language/statements/for-await-of/async-gen-decl-dstr-obj-empty-string.js # TypeError: Object destructuring requires a data object or array value, received a string.
language/statements/for-await-of/async-gen-decl-dstr-obj-rest-number.js # TypeError: Object destructuring requires a data object or array value, received a number.
language/statements/for-await-of/async-gen-decl-dstr-obj-rest-str-val.js # TypeError: Object destructuring requires a data object or array value, received a string.
language/statements/for-in/S12.6.4_A7_T2.js # for...in visits keys deleted during the loop
language/statements/for-in/order-enumerable-shadowed.js # Object.create property descriptors are not supported; assign the fields after creating the object.
language/statements/for-in/S12.6.4_A6.1.js # TypeError: FACTORY cannot be constructed: user-defined constructors and classes are not supported. C
language/statements/for-in/S12.6.4_A6.js # TypeError: FACTORY cannot be constructed: user-defined constructors and classes are not supported. C
language/statements/for-of/dstr/array-elem-iter-rtrn-close-err.js # Iterator next must be a function.
language/statements/for-of/dstr/array-elem-iter-thrw-close-err.js # Expected SameValue(«1», «0») to be true
language/statements/for-of/dstr/array-elem-iter-thrw-close.js # Expected SameValue(«1», «0») to be true
language/statements/for-of/dstr/array-elem-trlg-iter-list-thrw-close-err.js # Expected SameValue(«1», «0») to be true
language/statements/for-of/dstr/array-elem-trlg-iter-list-thrw-close.js # Expected SameValue(«1», «0») to be true
language/statements/for-of/dstr/array-elem-trlg-iter-rest-rtrn-close-err.js # Expected a Test262Error to be thrown but no exception was thrown at all
language/statements/for-of/dstr/array-elem-trlg-iter-rest-rtrn-close-null.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for-of/dstr/array-elem-trlg-iter-rest-rtrn-close.js # Expected SameValue(«11», «1») to be true
language/statements/for-of/dstr/array-elem-trlg-iter-rest-thrw-close-err.js # Expected SameValue(«11», «1») to be true
language/statements/for-of/dstr/array-elem-trlg-iter-rest-thrw-close.js # Expected SameValue(«11», «1») to be true
language/statements/for-of/dstr/array-rest-iter-rtrn-close-err.js # Iterator next must be a function.
language/statements/for-of/dstr/array-rest-iter-rtrn-close-null.js # Iterator next must be a function.
language/statements/for-of/dstr/array-rest-iter-rtrn-close.js # Test262Error
language/statements/for-of/dstr/array-rest-iter-thrw-close-err.js # Expected SameValue(«11», «0») to be true
language/statements/for-of/dstr/array-rest-iter-thrw-close.js # Expected SameValue(«11», «0») to be true
language/statements/for-of/dstr/array-rest-lref-err.js # Expected SameValue(«1», «0») to be true
language/statements/for-of/dstr/const-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for-of/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for-of/dstr/let-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for-of/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for-of/dstr/obj-empty-bool.js # Object destructuring requires a data object or array value, received a boolean.
language/statements/for-of/dstr/obj-empty-num.js # Object destructuring requires a data object or array value, received a number.
language/statements/for-of/dstr/obj-empty-string.js # Object destructuring requires a data object or array value, received a string.
language/statements/for-of/dstr/obj-rest-number.js # Object destructuring requires a data object or array value, received a number.
language/statements/for-of/dstr/obj-rest-str-val.js # Object destructuring requires a data object or array value, received a string.
language/statements/for-of/dstr/var-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for-of/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for-of/throw-from-catch.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/for-of/throw-from-finally.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/for-of/throw.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/for/dstr/const-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for/dstr/const-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for/dstr/let-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/for/dstr/let-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/for/dstr/var-ary-init-iter-get-err-array-prototype.js # Expected a TypeError but got a ReferenceError
language/statements/for/dstr/var-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/function/13.2-1-s.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
language/statements/function/13.2-19-b-3gs.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/function/13.2-2-s.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/function/13.2-3-s.js # TypeError: foo cannot be constructed: user-defined constructors and classes are not supported. Call
language/statements/function/13.2-4-s.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/function/S13.2.2_A10.js # #1: var obj = new FACTORY() does not lead to throwing exception. Actual: Exception is TypeError: FAC
language/statements/function/S13.2.2_A12.js # #1: var obj = new FACTORY() does not lead to throwing exception. Actual: Exception is TypeError: FAC
language/statements/function/S13.2.2_A15_T1.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A15_T2.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A15_T3.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A15_T4.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A16_T1.js # TypeError: The called value cannot be constructed: user-defined constructors and classes are not sup
language/statements/function/S13.2.2_A16_T2.js # TypeError: The called value cannot be constructed: user-defined constructors and classes are not sup
language/statements/function/S13.2.2_A16_T3.js # TypeError: The called value cannot be constructed: user-defined constructors and classes are not sup
language/statements/function/S13.2.2_A1_T1.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/function/S13.2.2_A1_T2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/function/S13.2.2_A2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/function/S13.2.2_A3_T1.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/function/S13.2.2_A3_T2.js # … cannot be constructed: user-defined constructors and classes are not supported. Call it as a funct
language/statements/function/S13.2.2_A4_T1.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A4_T2.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A5_T1.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A5_T2.js # TypeError: __FACTORY cannot be constructed: user-defined constructors and classes are not supported.
language/statements/function/S13.2.2_A6_T1.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2.2_A6_T2.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2.2_A7_T1.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2.2_A7_T2.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2.2_A8_T1.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2.2_A8_T2.js # TypeError: __func cannot be constructed: user-defined constructors and classes are not supported. Ca
language/statements/function/S13.2_A1_T1.js # #1: __func.prototype !== undefined
language/statements/function/S13.2_A1_T2.js # #1: __func.prototype !== undefined
language/statements/function/S13.2_A4_T1.js # Unknown identifier '…'.
language/statements/function/S13.2_A4_T2.js # #1: typeof __gunc.prototype === '…'. Actual: typeof __gunc.prototype ===undefined
language/statements/function/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/function/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/function/dstr/dflt-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/generators/default-proto.js # generator functions have no GeneratorFunction.prototype
language/statements/function/dstr/dflt-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/generators/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/generators/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/generators/dstr/dflt-ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/generators/prototype-relation-to-function.js # generator functions have no GeneratorFunction.prototype
language/statements/generators/dstr/dflt-ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/generators/restricted-properties.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/labeled/value-await-non-module.js # Failed to parse TypeScript: Expression expected.
language/statements/let/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/let/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/return/S12.9_A1_T1.js # expected SyntaxError but the program ran
language/statements/return/S12.9_A1_T10.js # expected SyntaxError but the program ran
language/statements/return/S12.9_A1_T2.js # expected SyntaxError but the program ran
@@ -287,5 +1026,10 @@ language/statements/return/S12.9_A1_T8.js # expected SyntaxError but the progra
language/statements/return/S12.9_A1_T9.js # expected SyntaxError but the program ran
language/statements/switch/S12.11_A1_T4.js # Switch discriminants must be data values.
language/statements/switch/scope-lex-open-dflt.js # Switch discriminants must be data values.
language/statements/try/S12.14_A17.js # TypeError: Integer cannot be constructed: user-defined constructors and classes are not supported. C
language/statements/try/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/try/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true
language/statements/variable/S12.2_A11.js # TypeError: Cannot read properties of undefined (reading '…').
language/statements/variable/S12.2_A9.js # #1: When using property attributes, {DontEnum} not used
language/statements/variable/dstr/ary-init-iter-get-err-array-prototype.js # Expected a TypeError to be thrown but no exception was thrown at all
language/statements/variable/dstr/ary-ptrn-elem-id-iter-val-array-prototype.js # Expected SameValue(«3», «42») to be true