chakra-core / chakra-core/ChakraCore

Assertion Failure in ChakraCore/lib/Runtime/./Types/RecyclableObject.h, VarIs<T>(aValue)

Open
#6,962 1 comment 0 reactions 0 assignees View on GitHub
Needs More Info
Dominant language
JavaScript
Stars
9.3k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

ChakraCore version:
commit c3ead3f

Build cmd:
```shell
./build.sh --debug --static
```

Test case:
```js
function test(){

async function foo(x) {
const F = Float32Array;
const S = Set;
const A = Array;
const R = Reflect;
const O = Object;
const isF = isFinite;
const P = Proxy;
const Sym = Symbol;
const Boo = Boolean;
const JS = JSON;
const ev = eval;

for (let i = 536870912; i < x; i = i ** x) {
const f = await foo;
const s = i.splice();
}

async function bart() {
const w = new WeakMap();
const s = w.set();
}
const ret = bart();
}

const r = foo();
return r;
}

for(let i=0; i<1024; i++)
{
test();
}
```

Execute
```shell
./ch ./test.js
```

Error msg:
```
ASSERTION 2785381: (ChakraCore/lib/Runtime/./Types/RecyclableObject.h, line 527) VarIs(aValue)
Failure: (VarIs(aValue))
Illegal instruction
```

Contributor guide

Open the contributing guide

Research direction

Build ChakraCore with ./build.sh --debug --static, then run the supplied test.js with ./ch to reproduce the assertion in ChakraCore/lib/Runtime/./Types/RecyclableObject.h. Trace the failing VarIs(aValue) assertion and the async test path; done means the test no longer produces the assertion or illegal-instruction failure.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, javascript
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.