X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/81345200c95645a1b0d2635520f96ad55dfde63f..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/bindings/ScriptValue.cpp?ds=inline diff --git a/bindings/ScriptValue.cpp b/bindings/ScriptValue.cpp index 004ff24..153b033 100644 --- a/bindings/ScriptValue.cpp +++ b/bindings/ScriptValue.cpp @@ -97,8 +97,7 @@ bool ScriptValue::isFunction() const return getCallData(m_value.get(), callData) != CallTypeNone; } -#if ENABLE(INSPECTOR) -static PassRefPtr jsToInspectorValue(ExecState* scriptState, JSValue value, int maxDepth) +static RefPtr jsToInspectorValue(ExecState* scriptState, JSValue value, int maxDepth) { if (!value) { ASSERT_NOT_REACHED(); @@ -114,14 +113,16 @@ static PassRefPtr jsToInspectorValue(ExecState* scriptState, JSV return InspectorValue::null(); if (value.isBoolean()) return InspectorBasicValue::create(value.asBoolean()); - if (value.isNumber()) + if (value.isNumber() && value.isDouble()) return InspectorBasicValue::create(value.asNumber()); + if (value.isNumber() && value.isMachineInt()) + return InspectorBasicValue::create(static_cast(value.asMachineInt())); if (value.isString()) return InspectorString::create(value.getString(scriptState)); if (value.isObject()) { if (isJSArray(value)) { - RefPtr inspectorArray = InspectorArray::create(); + Ref inspectorArray = InspectorArray::create(); JSArray* array = asArray(value); unsigned length = array->length(); for (unsigned i = 0; i < length; i++) { @@ -129,34 +130,33 @@ static PassRefPtr jsToInspectorValue(ExecState* scriptState, JSV RefPtr elementValue = jsToInspectorValue(scriptState, element, maxDepth); if (!elementValue) return nullptr; - inspectorArray->pushValue(elementValue); + inspectorArray->pushValue(WTF::move(elementValue)); } - return inspectorArray; + return WTF::move(inspectorArray); } - RefPtr inspectorObject = InspectorObject::create(); + Ref inspectorObject = InspectorObject::create(); JSObject* object = value.getObject(); PropertyNameArray propertyNames(scriptState); - object->methodTable()->getOwnPropertyNames(object, scriptState, propertyNames, ExcludeDontEnumProperties); + object->methodTable()->getOwnPropertyNames(object, scriptState, propertyNames, EnumerationMode()); for (size_t i = 0; i < propertyNames.size(); i++) { const Identifier& name = propertyNames[i]; JSValue propertyValue = object->get(scriptState, name); RefPtr inspectorValue = jsToInspectorValue(scriptState, propertyValue, maxDepth); if (!inspectorValue) return nullptr; - inspectorObject->setValue(name.string(), inspectorValue); + inspectorObject->setValue(name.string(), WTF::move(inspectorValue)); } - return inspectorObject; + return WTF::move(inspectorObject); } ASSERT_NOT_REACHED(); return nullptr; } -PassRefPtr ScriptValue::toInspectorValue(ExecState* scriptState) const +RefPtr ScriptValue::toInspectorValue(ExecState* scriptState) const { JSLockHolder holder(scriptState); return jsToInspectorValue(scriptState, m_value.get(), InspectorValue::maxDepth); } -#endif // ENABLE(INSPECTOR) } // namespace Deprecated