Skip to content

Commit 4adcf40

Browse files
committed
Feature(runtime): Support Math.round/sqrt/pow
1 parent 2f27cf5 commit 4adcf40

8 files changed

Lines changed: 47 additions & 9 deletions

File tree

packages/runtime/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ project(hlvm-runtime)
44

55
set(CMAKE_BUILD_TYPE Release)
66
set(CMAKE_CXX_STANDARD 14)
7-
set(SOURCE_FILES helpers.cpp helpers.h helpers.h jsvalue.h)
7+
set(SOURCE_FILES helpers.cpp helpers.h helpers.h jsvalue.h math.cpp math.h)
88

99
add_library(hlvm-runtime STATIC ${SOURCE_FILES})

packages/runtime/helpers.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#include <cmath>
21
#include <stdio.h>
32

43
#include "helpers.h"
@@ -26,7 +25,3 @@ LIBRARY_EXPORT void console_log(bool boolean) {
2625
puts("false");
2726
}
2827
}
29-
30-
LIBRARY_EXPORT double Math__floor(double number) {
31-
return std::floor(number);
32-
}

packages/runtime/lib.runtime.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ declare function console_log(value: boolean): void;
1111
declare class Math {
1212
/**
1313
* Returns the greatest integer less than or equal to its numeric argument.
14-
* @param x A numeric expression.
1514
*/
1615
static floor(value: number): number;
16+
static round(value: number): number;
17+
static sqrt(value: number): number;
18+
static pow(value: number, power: number): number;
1719
}

packages/runtime/library.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
#ifndef HLVM_RUNTIME_HELPERS_H
3+
#define HLVM_RUNTIME_HELPERS_H
4+
5+
#define LIBRARY_EXPORT __attribute__ ((visibility ("default")))
6+
7+
#endif //HLVM_RUNTIME_HELPERS_H

packages/runtime/math.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include <cmath>
2+
3+
#include "math.h"
4+
5+
LIBRARY_EXPORT double Math__pow(double number, double power) {
6+
return std::pow(number, power);
7+
}
8+
9+
LIBRARY_EXPORT double Math__sqrt(double number) {
10+
return std::sqrt(number);
11+
}
12+
13+
LIBRARY_EXPORT double Math__floor(double number) {
14+
return std::floor(number);
15+
}
16+
17+
LIBRARY_EXPORT double Math__round(double number) {
18+
return std::round(number);
19+
}

packages/runtime/math.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// Created by Dmitry Patsura on 2018-11-18.
3+
//
4+
5+
#include "library.h"
6+
7+
#ifndef HLVM_RUNTIME_MATH_H
8+
#define HLVM_RUNTIME_MATH_H
9+
10+
LIBRARY_EXPORT double Math__pow(double number, double power);
11+
LIBRARY_EXPORT double Math__sqrt(double number);
12+
LIBRARY_EXPORT double Math__floor(double number);
13+
LIBRARY_EXPORT double Math__round(double number);
14+
15+
#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.4.0",
3+
"version": "0.5.0",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)