JsContracts 0.4 → 0.5
raw patch · 3 files changed
+14/−13 lines, 3 filesdep +WebBits-Htmldep ~WebBitsdep ~basePVP ok
version bump matches the API change (PVP)
Dependencies added: WebBits-Html
Dependency ranges changed: WebBits, base
API changes (from Hackage documentation)
Files
- JsContracts.cabal +6/−6
- src/BrownPLT/JavaScript/Contracts/Compiler.hs +7/−6
- src/BrownPLT/JavaScript/Contracts/Template.hs +1/−1
JsContracts.cabal view
@@ -1,5 +1,5 @@ Name: JsContracts-Version: 0.4+Version: 0.5 Cabal-Version: >= 1.2.3 Copyright: Copyright (c) 2008-2009 Arjun Guha and Spiridon Eliopoulos License: BSD3@@ -20,8 +20,8 @@ Hs-Source-Dirs: src Build-Depends:- base>=4, mtl>=1.1.0.1, parsec<3.0.0, pretty>=0.1, containers>=0.1, syb>=0.1,- WebBits>=0.15, filepath, directory+ base>=4 && < 5, mtl>=1.1.0.1, parsec<3.0.0, pretty>=0.1, containers>=0.1, syb>=0.1,+ WebBits==1.0, WebBits-Html==1.0, filepath, directory ghc-options: -fwarn-incomplete-patterns Extensions: @@ -39,8 +39,8 @@ Main-Is: Jscc.hs Hs-Source-Dirs: src Build-Depends:- base>=4, mtl>=1.1.0.1, parsec<3.0.0, pretty>=0.1, containers>=0.1, syb>=0.1,- WebBits>=0.15+ base>=4 && < 5, mtl>=1.1.0.1, parsec<3.0.0, pretty>=0.1, containers>=0.1, syb>=0.1,+ WebBits==1.0, WebBits-Html==1.0 ghc-options: -fwarn-incomplete-patterns- Extensions: + Extensions:
src/BrownPLT/JavaScript/Contracts/Compiler.hs view
@@ -42,7 +42,7 @@ export n = TryStmt noPos (IfSingleStmt noPos (InfixExpr noPos OpStrictNEq (var n) undef) (ExprStmt noPos $ AssignExpr noPos OpAssign- (DotRef noPos (ThisRef noPos) (Id noPos n)) + (LDot noPos (ThisRef noPos) n) (var n))) [CatchClause noPos (Id noPos "_") (EmptyStmt noPos)] Nothing@@ -59,11 +59,12 @@ window_namespace = (DotRef noPos (VarRef noPos (Id noPos "window")) (Id noPos namespace))- decl = ExprStmt noPos $ AssignExpr noPos OpAssign window_namespace+ decl = ExprStmt noPos $ AssignExpr noPos OpAssign + (LDot noPos (VarRef noPos (Id noPos "window")) namespace) (ObjectLit noPos []) loop = ForInStmt noPos (ForInVar (Id noPos "ix")) (VarRef noPos (Id noPos "impl")) $ ExprStmt noPos $- AssignExpr noPos OpAssign (BracketRef noPos window_namespace ix)+ AssignExpr noPos OpAssign (LBracket noPos window_namespace ix) (BracketRef noPos (VarRef noPos (Id noPos "impl")) ix) wrapImplementation :: [ParsedStatement] -> [String] -> [ParsedStatement]@@ -88,14 +89,14 @@ makeExportStatements :: InterfaceItem -> [ParsedStatement] makeExportStatements (InterfaceExport id pos contract) = [ ExprStmt noPos $ AssignExpr noPos OpAssign - (DotRef noPos (ThisRef noPos) (Id noPos id))+ (LDot noPos (ThisRef noPos) id) (compileContract id contract pos $ DotRef noPos (VarRef noPos (Id noPos "impl")) (Id noPos id)) ] -- allows external code to use "instanceof id" makeExportStatements (InterfaceInstance id _ _) = [ ExprStmt noPos $ AssignExpr noPos OpAssign - (DotRef noPos (ThisRef noPos) (Id noPos id))+ (LDot noPos (ThisRef noPos) id) (DotRef noPos (VarRef noPos (Id noPos "impl")) (Id noPos id)) ] makeExportStatements _ = [ ]@@ -103,7 +104,7 @@ exportRelease :: InterfaceItem -> ParsedStatement exportRelease (InterfaceExport id _ contract) = ExprStmt noPos $ AssignExpr noPos OpAssign - (DotRef noPos (ThisRef noPos) (Id noPos id))+ (LDot noPos (ThisRef noPos) id) (DotRef noPos (VarRef noPos (Id noPos "impl")) (Id noPos id)) exportRelease _ = error "exportRelease: expected InterfaceItem"
src/BrownPLT/JavaScript/Contracts/Template.hs view
@@ -39,7 +39,7 @@ | StatementTemplate [ParsedStatement] exprTemplate :: String -> JavaScriptTemplate-exprTemplate str = case parse parseAssignExpr "expression template" str of+exprTemplate str = case parse assignExpr "expression template" str of Left err -> error ("Error parsing template: " ++ show err ++ "; template:\n\n" ++ str) Right expr -> ExpressionTemplate expr