ChakraCore version:
commit c3ead3f

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

Test case:
```js
function test() {
	async function foo(a1,a2) {
		for (let i = a2; i < foo; i = i + 3705358555) {
		    const ret = await a1;
		}
		
		async function bar() {
		}
		
		const p = new Proxy(Reflect,bar);
		p.__proto__ = bar;
	}
	
	foo();
	new Float32Array(Float32Array);
	
	function baz(v21,v22) {
		let {"constructor":v23,"ignoreCase":v24,"length":v25,} = v21;
	}
	const r = baz(foo,foo);
	return r;
}

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

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

Error msg:
```
ASSERTION 2779735: (ChakraCore/lib/Runtime/./Library/ScriptFunction.h, line 78) Derived class need to define marshal to script context
 Failure: (VirtualTableInfo<ScriptFunction>::HasVirtualTable(this))
Illegal instruction
```

Derived class need to define marshal to script context  Failure: (VirtualTableInfo<ScriptFunction>::HasVirtualTable(this))
This is a GitHub Issue
repo:ChakraCore
owner:chakra-core
Title : Derived class need to define marshal to script context  Failure: (VirtualTableInfo<ScriptFunction>::HasVirtualTable(this))
Issue date:

--- start body ---
ChakraCore version:
commit c3ead3f

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

Test case:
```js
function test() {
	async function foo(a1,a2) {
		for (let i = a2; i < foo; i = i + 3705358555) {
		    const ret = await a1;
		}
		
		async function bar() {
		}
		
		const p = new Proxy(Reflect,bar);
		p.__proto__ = bar;
	}
	
	foo();
	new Float32Array(Float32Array);
	
	function baz(v21,v22) {
		let {"constructor":v23,"ignoreCase":v24,"length":v25,} = v21;
	}
	const r = baz(foo,foo);
	return r;
}

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

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

Error msg:
```
ASSERTION 2779735: (ChakraCore/lib/Runtime/./Library/ScriptFunction.h, line 78) Derived class need to define marshal to script context
 Failure: (VirtualTableInfo<ScriptFunction>::HasVirtualTable(this))
Illegal instruction
```

--- end body ---
