Skip to content

Commit 03b3215

Browse files
committed
Feature(runtime): Implement Math.random (demo)
1 parent 5c932e6 commit 03b3215

5 files changed

Lines changed: 11 additions & 2 deletions

File tree

packages/runtime/lib.runtime.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ declare class Math {
1616
static round(value: number): number;
1717
static sqrt(value: number): number;
1818
static pow(value: number, power: number): number;
19+
static random(): number;
1920
}

packages/runtime/math.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <cmath>
22

33
#include "math.h"
4+
#include "v8/src/base/utils/random-number-generator.cc"
45

56
LIBRARY_EXPORT double Math__pow(double number, double power) {
67
return std::pow(number, power);
@@ -17,3 +18,9 @@ LIBRARY_EXPORT double Math__floor(double number) {
1718
LIBRARY_EXPORT double Math__round(double number) {
1819
return std::round(number);
1920
}
21+
22+
LIBRARY_EXPORT double Math__random() {
23+
v8::base::RandomNumberGenerator rand(92834738);
24+
25+
return rand.NextDouble();
26+
}

packages/runtime/math.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ LIBRARY_EXPORT double Math__pow(double number, double power);
1111
LIBRARY_EXPORT double Math__sqrt(double number);
1212
LIBRARY_EXPORT double Math__floor(double number);
1313
LIBRARY_EXPORT double Math__round(double number);
14+
LIBRARY_EXPORT double Math__random();
1415

1516
#endif //HLVM_RUNTIME_MATH_H

packages/runtime/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/runtime/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@static-script/runtime",
3-
"version": "0.5.0",
3+
"version": "0.6.0",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)