Class: Wardite::WasmFunction

Inherits:
Object
  • Object
show all
Defined in:
lib/wardite.rb

Overview

TODO: common interface btw. WasmFunction and ExternalFunction?

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(callsig, retsig, code_body) ⇒ WasmFunction

Returns a new instance of WasmFunction.



1286
1287
1288
1289
1290
1291
1292
# File 'lib/wardite.rb', line 1286

def initialize(callsig, retsig, code_body)
  @callsig = callsig
  @retsig = retsig

  @code_body = code_body
  @findex = 0 # for debug
end

Instance Attribute Details

#callsigObject

: Array



1274
1275
1276
# File 'lib/wardite.rb', line 1274

def callsig
  @callsig
end

#code_bodyObject

: CodeSection::CodeBody



1278
1279
1280
# File 'lib/wardite.rb', line 1278

def code_body
  @code_body
end

#findexObject

: Integer



1280
1281
1282
# File 'lib/wardite.rb', line 1280

def findex
  @findex
end

#retsigObject

: Array



1276
1277
1278
# File 'lib/wardite.rb', line 1276

def retsig
  @retsig
end

Instance Method Details

#bodyObject



1295
1296
1297
# File 'lib/wardite.rb', line 1295

def body
  code_body.body
end

#clone(override_type: nil) ⇒ Object



1311
1312
1313
1314
1315
1316
1317
1318
# File 'lib/wardite.rb', line 1311

def clone(override_type: nil)
  if override_type
    # code_body is assumed to be frozen, so we can copy its ref
    WasmFunction.new(override_type.callsig, override_type.retsig, code_body)
  else
    WasmFunction.new(callsig, retsig, code_body)
  end
end

#locals_countObject



1305
1306
1307
# File 'lib/wardite.rb', line 1305

def locals_count
  code_body.locals_count
end

#locals_typeObject



1300
1301
1302
# File 'lib/wardite.rb', line 1300

def locals_type
  code_body.locals_type
end