Do not call InternalClass::changeVTable directly

vtable changes need to happen when the internal class
is being constructed, not later on.

Change-Id: Ibb9515745c9fc3507a5a90b4cc50a33e2e0d3f99
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Clear out memory in the GC, not when constructing objects

Object construction shouldn't need to zero initialize itself,
let's rather do this in the GC, where we can use fast memset's.

Change-Id: I2f9efa1729183b0d737de5a84f92af319b2c5631
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Move Managed::type and some flags into the vtable

Move the type flag into the vtable to free up these
bits in the Managed class, and not have to set them
at object construction time.

As we often need to know whether a Managed object is a
Object, FunctionObject or String, add some bitflags to test
for these to the vtable.

Change-Id: I7d08ca044544debb307b55f124f34cb086ad9e84
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix compiler warning about wrong reinterpret_cast

No need to use reinterpret_cast's in the type checking
for the Managed casting. A static cast works just as well
(as it's actually used two lines further down).

Change-Id: Ie531098eddddda7e9f151eaedc136cbeab14f473
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Use the flags to check whether a Managed is of a certain type

Change-Id: I740c4b7e26bdb9d9f40c1c46615cc68f679e036f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Get rid of the nonStrictArgumentsObject flag in Managed

Change-Id: I4ac58e9d87506ae930c2e44e6089f4af3cd9ccb2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Move array data into it's own struct

First step of separating the array data from Object.

Change-Id: I5c857397f0ef53cff0807debdb1e405424e1046a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix a warning about casting from ascii

Change-Id: I4e1b7151742dcb6296e59dd59146c908cd5587ba
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>