2021-01-18 13:20:06 +01:00
|
|
|
// Copyright (c) 2019-2021 Alexander Medvednikov. All rights reserved.
|
2020-06-20 13:22:49 +02:00
|
|
|
// Use of this source code is governed by an MIT license
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
// This file contains JS functions present in both node and the browser.
|
|
|
|
// They have been ported from their TypeScript definitions.
|
|
|
|
|
|
|
|
module builtin
|
|
|
|
|
2020-12-08 17:49:20 +01:00
|
|
|
pub struct JS.Number {}
|
|
|
|
pub struct JS.String {
|
|
|
|
length JS.Number
|
|
|
|
}
|
|
|
|
pub struct JS.Boolean {}
|
|
|
|
pub struct JS.Array {}
|
|
|
|
pub struct JS.Map {}
|
|
|
|
|
|
|
|
// Type prototype functions
|
|
|
|
fn (v JS.String) toString() JS.String
|
|
|
|
fn (v JS.Number) toString() JS.String
|
|
|
|
fn (v JS.Boolean) toString() JS.String
|
|
|
|
fn (v JS.Array) toString() JS.String
|
|
|
|
fn (v JS.Map) toString() JS.String
|
|
|
|
|
|
|
|
fn (v JS.String) slice(a int, b int) JS.String
|
|
|
|
|
2020-06-20 13:22:49 +02:00
|
|
|
// Top level functions
|
|
|
|
fn JS.eval(string) any
|
|
|
|
fn JS.parseInt(string, f64) f64
|
|
|
|
fn JS.parseFloat(string) f64
|
|
|
|
fn JS.isNaN(f64) bool
|
|
|
|
fn JS.isFinite(f64) bool
|
|
|
|
fn JS.decodeURI(string) string
|
|
|
|
fn JS.decodeURIComponent(string) string
|
|
|
|
fn JS.encodeURI(string) string
|
|
|
|
type EncodeURIComponentArg = string | f64 | bool
|
|
|
|
fn JS.encodeURIComponent(EncodeURIComponentArg) string
|
|
|
|
fn JS.escape(string) string
|
|
|
|
fn JS.unescape(string) string
|
|
|
|
|
|
|
|
// console
|
|
|
|
fn JS.console.assert(bool, ...any)
|
|
|
|
fn JS.console.clear()
|
|
|
|
fn JS.console.count(string)
|
|
|
|
fn JS.console.countReset(string)
|
|
|
|
fn JS.console.debug(...any)
|
|
|
|
fn JS.console.dir(any, any)
|
|
|
|
fn JS.console.dirxml(...any)
|
|
|
|
fn JS.console.error(...any)
|
|
|
|
fn JS.console.exception(string, ...any)
|
|
|
|
fn JS.console.group(...any)
|
|
|
|
fn JS.console.groupCollapsed(...any)
|
|
|
|
fn JS.console.groupEnd()
|
|
|
|
fn JS.console.info(...any)
|
|
|
|
fn JS.console.log(...any)
|
|
|
|
fn JS.console.table(any, []string)
|
|
|
|
fn JS.console.time(string)
|
|
|
|
fn JS.console.timeEnd(string)
|
|
|
|
fn JS.console.timeLog(string, ...any)
|
|
|
|
fn JS.console.timeStamp(string)
|
|
|
|
fn JS.console.trace(...any)
|
|
|
|
fn JS.console.warn(...any)
|
|
|
|
|
|
|
|
// Math
|
|
|
|
fn JS.Math.abs(f64) f64
|
|
|
|
fn JS.Math.acos(f64) f64
|
|
|
|
fn JS.Math.asin(f64) f64
|
|
|
|
fn JS.Math.atan(f64) f64
|
|
|
|
fn JS.Math.atan2(f64, f64) f64
|
|
|
|
fn JS.Math.ceil(f64) f64
|
|
|
|
fn JS.Math.cos(f64) f64
|
|
|
|
fn JS.Math.exp(f64) f64
|
|
|
|
fn JS.Math.floor(f64) f64
|
|
|
|
fn JS.Math.log(f64) f64
|
|
|
|
fn JS.Math.max(...f64) f64
|
|
|
|
fn JS.Math.min(...f64) f64
|
|
|
|
fn JS.Math.pow(f64, f64) f64
|
|
|
|
fn JS.Math.random() f64
|
|
|
|
fn JS.Math.round(f64) f64
|
|
|
|
fn JS.Math.sin(f64) f64
|
|
|
|
fn JS.Math.sqrt(f64) f64
|
|
|
|
fn JS.Math.tan(f64) f64
|
2020-12-08 17:49:20 +01:00
|
|
|
|
|
|
|
// JSON
|
|
|
|
fn JS.JSON.stringify(any) string
|
2021-01-18 13:20:06 +01:00
|
|
|
fn JS.JSON.parse(string) any
|