mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-15 16:01:30 +00:00
hmm
This commit is contained in:
@ -72,20 +72,13 @@ export class Array<T> extends ArrayBufferView {
|
||||
// return LOAD<T>(this.buffer_, index);
|
||||
// }
|
||||
|
||||
// @operator("[]=")
|
||||
// private __set(index: i32, value: T): void {
|
||||
// var buffer = this.buffer_;
|
||||
// var capacity = buffer.byteLength >>> alignof<T>();
|
||||
// if (<u32>index >= <u32>capacity) {
|
||||
// const MAX_LENGTH = MAX_BLENGTH >>> alignof<T>();
|
||||
// if (<u32>index >= <u32>MAX_LENGTH) throw new Error("Invalid array length");
|
||||
// buffer = reallocateUnsafe(buffer, (index + 1) << alignof<T>());
|
||||
// this.buffer_ = buffer;
|
||||
// this.length_ = index + 1;
|
||||
// }
|
||||
// STORE<T>(buffer, index, value);
|
||||
// if (isManaged<T>()) __gc_link(changetype<usize>(this), changetype<usize>(value)); // tslint:disable-line
|
||||
// }
|
||||
@operator("[]=")
|
||||
private __set(index: i32, value: T): void {
|
||||
this.resize(index + 1);
|
||||
store<T>(this.dataStart + (<usize>index << alignof<T>()), value);
|
||||
if (isManaged<T>()) LINK(changetype<usize>(value), changetype<usize>(this));
|
||||
if (index >= this.length_) this.length_ = index + 1;
|
||||
}
|
||||
|
||||
// @operator("{}=")
|
||||
// private __unchecked_set(index: i32, value: T): void {
|
||||
|
@ -714,7 +714,7 @@ export class Float64Array extends ArrayBufferView {
|
||||
begin: i32,
|
||||
end: i32
|
||||
): TArray {
|
||||
var buffer = changetype<usize>(array.buffer);
|
||||
var buffer = array.data;
|
||||
var length = <i32>array.length;
|
||||
if (begin < 0) begin = max(length + begin, 0);
|
||||
else begin = min(begin, length);
|
||||
@ -724,7 +724,7 @@ export class Float64Array extends ArrayBufferView {
|
||||
store<usize>(out, buffer, offsetof<TArray>("buffer"));
|
||||
store<usize>(out, array.dataStart + (<usize>begin << alignof<T>()) , offsetof<TArray>("dataStart"));
|
||||
store<usize>(out, array.dataEnd + (<usize>(end - begin) << alignof<T>()), offsetof<TArray>("dataEnd"));
|
||||
LINK(buffer, REGISTER<TArray,usize>(out)); // register first, then link
|
||||
LINK(buffer, REGISTER<TArray>(out)); // register first, then link
|
||||
return changetype<TArray>(out);
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
// this function will go away once `memory.copy` becomes an intrinsic
|
||||
export function memcpy(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memcpy.c
|
||||
var w: u32, x: u32;
|
||||
|
||||
@ -142,7 +141,6 @@ export function memcpy(dest: usize, src: usize, n: usize): void { // see: musl/s
|
||||
}
|
||||
}
|
||||
|
||||
// this function will go away once `memory.copy` becomes an intrinsic
|
||||
export function memmove(dest: usize, src: usize, n: usize): void { // see: musl/src/string/memmove.c
|
||||
if (dest === src) return;
|
||||
if (src + n <= dest || dest + n <= src) {
|
||||
@ -184,7 +182,6 @@ export function memmove(dest: usize, src: usize, n: usize): void { // see: musl/
|
||||
}
|
||||
}
|
||||
|
||||
// this function will go away once `memory.fill` becomes an intrinsic
|
||||
export function memset(dest: usize, c: u8, n: usize): void { // see: musl/src/string/memset
|
||||
|
||||
// fill head and tail with minimal branching
|
||||
|
@ -1,12 +1,5 @@
|
||||
import {
|
||||
CharCode
|
||||
} from "./string";
|
||||
|
||||
import {
|
||||
ALLOC,
|
||||
REGISTER,
|
||||
FREE
|
||||
} from "../runtime";
|
||||
import { ALLOC, REGISTER, FREE } from "../runtime";
|
||||
import { CharCode } from "./string";
|
||||
|
||||
@inline export const MAX_DOUBLE_LENGTH = 28;
|
||||
|
||||
|
Reference in New Issue
Block a user