yql-0.0.0: src/Language/JavaScript/Host/YQL/Response.hs
module Language.JavaScript.Host.YQL.Response where
import Control.Lens ((?=), use)
import Data.YQL (YQLM)
import Language.JavaScript.Host
import Language.JavaScript.Interpret
import Language.JavaScript.SubType
import qualified Data.Map as Map (empty)
response :: JavaScriptT YQLM Object
response = do
op <- use objectPrototypeObject
fp <- use functionPrototypeObject
yqlResponseId <- createNextInternalId
let yqlResponseObj = Object yqlResponseId
yqlResponseObjInt = ObjectInternal {
objectInternalProperties = Map.empty,
objectInternalPrototype = const $ return (JSExist op),
objectInternalClass = "Object",
objectInternalExtensible = const $ return True,
objectInternalGet = getImpl,
objectInternalGetOwnProperty = getOwnPropertyImpl,
objectInternalGetProperty = getPropertyImpl,
objectInternalPut = putImpl,
objectInternalCanPut = canPutImpl,
objectInternalHasProperty = hasPropertyImpl,
objectInternalDelete = deleteImpl,
objectInternalDefaultValue = defaultValueImpl,
objectInternalDefineOwnProperty = defineOwnPropertyImpl,
objectInternalPrimitiveValue = Nothing,
objectInternalConstruct = Nothing,
objectInternalCall = Nothing,
objectInternalHasInstance = Nothing,
objectInternalScope = Nothing,
objectInternalFormalParameters = Nothing,
objectInternalCode = Nothing,
objectInternalTargetFunction = Nothing,
objectInternalBoundThis = Nothing,
objectInternalBoundArguments = Nothing,
objectInternalMatch = Nothing,
objectInternalParameterMap = Nothing }
mInternalObject yqlResponseObj ?= yqlResponseObjInt
defineGlobalProperty
"response"
(PropertyData DataDescriptor {
dataDescriptorValue = inj yqlResponseObj,
dataDescriptorWritable = True,
dataDescriptorEnumerable = False,
dataDescriptorConfigurable = True })
return yqlResponseObj