ghc-9.6.3: The GHC API

Copyright | (c) The University of Glasgow 2001
License | BSD-style (see the file LICENSE)
Maintainer | Jeffrey Young <jeffrey.young@iohk.io> Luite Stegeman <luite.stegeman@iohk.io> Sylvain Henry <sylvain.henry@iohk.io> Josh Meredith <josh.meredith@iohk.io>
Stability | experimental
Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.StgToJS.Rts.Types

Description

Types and utility functions used in the JS RTS.

Synopsis

- traceRts :: StgToJSConfig -> JExpr -> JStat
- assertRts :: ToJExpr a => StgToJSConfig -> JExpr -> a -> JStat
- clName :: JExpr -> JExpr
- clTypeName :: JExpr -> JExpr
- stackFrameSize :: JExpr -> JExpr -> JStat
- withRegs :: StgReg -> StgReg -> (StgReg -> JStat) -> JStat

# Documentation

traceRts :: StgToJSConfig -> JExpr -> JStat Source #

Syntactic sugar, i.e., a Haskell function which generates useful JS code. Given a `JExpr`, `ex`, inject a trace statement on `ex` in the compiled JS program

assertRts :: ToJExpr a => StgToJSConfig -> JExpr -> a -> JStat Source #

Syntactic sugar. Given a `JExpr`, `ex` which is assumed to be a predicate, and a message `m`, assert that 'not ex' is True, if not throw an exception in JS land with message `m`.

clName :: JExpr -> JExpr Source #

name of the closure `c`

clTypeName :: JExpr -> JExpr Source #

Type name of the closure `c`

stackFrameSize Source #

Arguments

:: JExpr | assign frame size to this
-> JExpr | stack frame header function
-> JStat | size of the frame, including header

withRegs :: StgReg -> StgReg -> (StgReg -> JStat) -> JStat Source #

Perform the computation `f`, on the range of registers bounded by `start` and `end`.