#include "debugger.h"
#include "operations.h"
#include "SamplingTool.h"
+#include "StringObjectThatMasqueradesAsUndefined.h"
#include <stdio.h>
#if PLATFORM(DARWIN)
m_jsArrayVptr = jsArray->vptr();
static_cast<JSCell*>(jsArray)->~JSCell();
+ StringObjectThatMasqueradesAsUndefined* jsStringObjectThatMasqueradesAsUndefined = new (storage) StringObjectThatMasqueradesAsUndefined(StringObjectThatMasqueradesAsUndefined::VPtrStealingHack);
+ m_jsStringObjectThatMasqueradesAsUndefinedVptr = jsStringObjectThatMasqueradesAsUndefined->vptr();
+ static_cast<JSCell*>(jsStringObjectThatMasqueradesAsUndefined)->~JSCell();
+
JSString* jsString = new (storage) JSString(JSString::VPtrStealingHack);
m_jsStringVptr = jsString->vptr();
static_cast<JSCell*>(jsString)->~JSCell();
JSValue* Machine::cti_op_eq_null(CTI_ARGS)
{
JSValue* src = ARG_src1;
+
if (src->isUndefinedOrNull())
return jsBoolean(true);
- return jsBoolean(!JSImmediate::isImmediate(src) && static_cast<JSCell*>(src)->masqueradeAsUndefined());
+ return jsBoolean(ARG_exec->machine()->doesMasqueradesAsUndefined(src));
}
JSValue* Machine::cti_op_neq_null(CTI_ARGS)
if (src->isUndefinedOrNull())
return jsBoolean(false);
- return jsBoolean(JSImmediate::isImmediate(src) || !static_cast<JSCell*>(src)->masqueradeAsUndefined());
+ return jsBoolean(!ARG_exec->machine()->doesMasqueradesAsUndefined(src));
}
void* Machine::cti_vm_throw(CTI_ARGS)