• Richard Musiol's avatar
    runtime, sycall/js: add support for callbacks from JavaScript · e083dc63
    Richard Musiol authored
    This commit adds support for JavaScript callbacks back into
    WebAssembly. This is experimental API, just like the rest of the
    syscall/js package. The time package now also uses this mechanism
    to properly support timers without resorting to a busy loop.
    
    JavaScript code can call into the same entry point multiple times.
    The new RUN register is used to keep track of the program's
    run state. Possible values are: starting, running, paused and exited.
    If no goroutine is ready any more, the scheduler can put the
    program into the "paused" state and the WebAssembly code will
    stop running. When a callback occurs, the JavaScript code puts
    the callback data into a queue and then calls into WebAssembly
    to allow the Go code to continue running.
    
    Updates #18892
    Updates #25506
    
    Change-Id: Ib8701cfa0536d10d69bd541c85b0e2a754eb54fb
    Reviewed-on: https://go-review.googlesource.com/114197Reviewed-by: 's avatarAustin Clements <austin@google.com>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    e083dc63
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...