HJScript 0.4.7 → 0.4.8
raw patch · 5 files changed
+50/−6 lines, 5 filesdep ~HJavaScriptPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: HJavaScript
API changes (from Hackage documentation)
+ HJScript.Lang: delete :: Var a -> Exp Bool
+ HJScript.Lang: forIn :: (IsDeref d) => d -> (JString -> HJScript ()) -> HJScript ()
+ HJScript.Lang: forInVar :: (IsDeref d) => d -> (Var a -> HJScript ()) -> HJScript ()
+ HJScript.Objects.Object: Object :: Object
+ HJScript.Objects.Object: data Object
+ HJScript.Objects.Object: instance [overlap ok] HasConstructor Object () ()
+ HJScript.Objects.Object: instance [overlap ok] IsClass Object
+ HJScript.Objects.Object: instance [overlap ok] Show Object
Files
- HJScript.cabal +3/−2
- src/HJScript.hs +2/−0
- src/HJScript/Lang.hs +26/−3
- src/HJScript/Monad.hs +1/−1
- src/HJScript/Objects/Object.hs +18/−0
HJScript.cabal view
@@ -1,5 +1,5 @@ Name: HJScript-Version: 0.4.7+Version: 0.4.8 License: BSD3 Author: Joel Bjornson, joel.bjornson@gmail.com, Niklas Broberg, nibro@cs.chalmers.se@@ -23,6 +23,7 @@ HJScript.Objects.JQuery HJScript.Objects.Date HJScript.Objects.Math+ HJScript.Objects.Object HJScript.Objects.RegExp HJScript.Objects.String HJScript.Objects.ActiveXObject@@ -45,7 +46,7 @@ Cabal-Version: >= 1.2.3-Build-Depends: base < 5, HJavaScript >= 0.4.4, mtl, hsx >= 0.4.4+Build-Depends: base < 5, HJavaScript >= 0.4.6, mtl, hsx >= 0.4.4 Build-Type: Simple Category: Web, Language
src/HJScript.hs view
@@ -18,6 +18,7 @@ module HJScript.Objects.Boolean, module HJScript.Objects.Date, module HJScript.Objects.Math,+ module HJScript.Objects.Object, module HJScript.Objects.RegExp, module HJScript.Objects.String ) where@@ -31,5 +32,6 @@ import HJScript.Objects.Boolean import HJScript.Objects.Date import HJScript.Objects.Math+import HJScript.Objects.Object import HJScript.Objects.RegExp import HJScript.Objects.String
src/HJScript/Lang.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverlappingInstances, UndecidableInstances #-}+{-# LANGUAGE FlexibleInstances, OverlappingInstances, TypeSynonymInstances, UndecidableInstances #-} ----------------------------------------------------------------------------- -- | -- Module : HJScript.Lang@@ -21,10 +21,10 @@ function, procedure, functionDecl, procedureDecl, -- Control flow- for, while, doWhile, doIf, doElse, doIfElse, doIfNoElse, noElse,+ for, forIn, forInVar, while, doWhile, doIf, doElse, doIfElse, doIfNoElse, noElse, -- Objects- var, varWith, inVar, new ,( # ), ( #. ),+ var, varWith, inVar, new, delete, ( # ), ( #. ), rec, first, second, x, y, -- Helpers @@ -137,6 +137,20 @@ pre name = VarDeclAssign name from cond name = (val $ JVar name) .<=. to +-- | for (var in object) { .. } +forIn :: (IsDeref d) => d -> (JString -> HJScript ()) -> HJScript ()+forIn obj script =+ do v <- var+ (_, body) <- hjsInside $ script (val v)+ outputStmt $ ForIn v obj body+ +-- | for (var in object) { .. } +forInVar :: (IsDeref d) => d -> (Var a -> HJScript ()) -> HJScript ()+forInVar obj script =+ do v <- var+ (_, body) <- hjsInside $ script (obj # propertyVar (val v))+ outputStmt $ ForIn v obj body + -- | while while :: JBool -> HJScript t -> HJScript () while cond script = do@@ -286,6 +300,15 @@ -- Create new Objects. new :: (HasConstructor o e t, Args e t) => o -> e -> HJScript (Exp o) new o = fmap val . varWith . JNew o ++-- |delete a property+--+-- Can only delete properties/variables that are created implicitly,+-- not those declared with the var statement.+--+-- returns true if property was deleted. false if operation was not possible.+delete :: Var a -> Exp Bool+delete = JDelete -- | Dereferencing operator, similar to the `dot` operator in JavaScript. -- E.g. document.forms => document # forms, same as forms document
src/HJScript/Monad.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE OverlappingInstances, UndecidableInstances, GADTs #-}+{-# LANGUAGE FlexibleInstances, OverlappingInstances, TypeSynonymInstances, UndecidableInstances, GADTs #-} ----------------------------------------------------------------------------- -- | -- Module : HJScript.Monad
+ src/HJScript/Objects/Object.hs view
@@ -0,0 +1,18 @@+{-# LANGUAGE MultiParamTypeClasses #-}+-----------------------------------------------------------------------------+-- |+-- Module : Language.HJavaScript.Objects.Array+-- Copyright : (c) 2010 Joel Bjornson +-- License : BSD-style+-- Maintainer : Joel Bjornson joel.bjornson@gmail.com+-- Niklas Broberg nibro@cs.chalmers.se+-- Stability : experimental+-----------------------------------------------------------------------------+module HJScript.Objects.Object where++import Language.HJavaScript.Syntax++-- | plain old Object+data Object = Object deriving Show+instance IsClass Object+instance HasConstructor Object () ()