JSDeprecatedCSSOMValueCustom.cpp [plain text]
#include "config.h"
#include "JSDeprecatedCSSOMValue.h"
#include "JSCSSStyleDeclarationCustom.h"
#include "JSDeprecatedCSSOMPrimitiveValue.h"
#include "JSDeprecatedCSSOMValueList.h"
#include "JSNode.h"
namespace WebCore {
using namespace JSC;
bool JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)
{
JSDeprecatedCSSOMValue* jsCSSValue = jsCast<JSDeprecatedCSSOMValue*>(handle.slot()->asCell());
if (!jsCSSValue->hasCustomProperties(jsCSSValue->vm()))
return false;
if (UNLIKELY(reason))
*reason = "CSSStyleDeclaration is opaque root";
return visitor.containsOpaqueRoot(root(&jsCSSValue->wrapped().owner()));
}
JSValue toJSNewlyCreated(JSGlobalObject*, JSDOMGlobalObject* globalObject, Ref<DeprecatedCSSOMValue>&& value)
{
if (value->isValueList())
return createWrapper<DeprecatedCSSOMValueList>(globalObject, WTFMove(value));
if (value->isPrimitiveValue())
return createWrapper<DeprecatedCSSOMPrimitiveValue>(globalObject, WTFMove(value));
return createWrapper<DeprecatedCSSOMValue>(globalObject, WTFMove(value));
}
JSValue toJS(JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, DeprecatedCSSOMValue& value)
{
return wrap(lexicalGlobalObject, globalObject, value);
}
}