Fantom

 

class

compilerJs::JsSlotRef

sys::Obj
  compilerJs::JsNode
    compilerJs::JsSlotRef
//
// Copyright (c) 2009, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
//   10 Jul 09  Andy Frank  Creation
//

using compiler

**
** JsSlot
**
abstract class JsSlot : JsNode
{
  new make(JsCompilerSupport s, SlotDef def) : super(s)
  {
    this.parent     = qnameToJs(def.parentDef)
    this.name       = vnameToJs(def.name)
    this.flags      = def.flags
    this.isAbstract = def.isAbstract
    this.isStatic   = def.isStatic
    this.isNative   = def.isNative
  }

  Str parent      // qname of slot parent
  Str name        // slot name
  Int flags       // slot flags
  Bool isAbstract // is slot abstract
  Bool isStatic   // is slot static
  Bool isNative   // is slot native
}

**************************************************************************
** JsSlotRef
**************************************************************************

**
** JsSlotRef
**
class JsSlotRef : JsNode
{
  new make(JsCompilerSupport cs, CSlot s) : super(cs)
  {
    this.parent     = qnameToJs(s.parent)
    this.name       = vnameToJs(s.name)
    this.isAbstract = s.isAbstract
    this.isStatic   = s.isStatic
  }

  override Void write(JsWriter out)
  {
    out.w(name)
  }

  Str parent      // qname of slot parent
  Str name        // qname of type ref
  Bool isAbstract // is slot abstract
  Bool isStatic   // is slot static
}