blob: 3aaf6ca5e70046d6ab421d0969a4312e23557a2c [file]
// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build js && wasm
package runtime
import "unsafe"
func sbrk(n uintptr) unsafe.Pointer {
grow := divRoundUp(n, physPageSize)
size := currentMemory()
if growMemory(int32(grow)) < 0 {
return nil
}
resetMemoryDataView()
return unsafe.Pointer(uintptr(size) * physPageSize)
}
func currentMemory() int32
func growMemory(pages int32) int32
// resetMemoryDataView signals the JS front-end that WebAssembly's memory.grow instruction has been used.
// This allows the front-end to replace the old DataView object with a new one.
//
//go:wasmimport gojs runtime.resetMemoryDataView
func resetMemoryDataView()