From 5d045ef01cc957e91411215da672ed0311271ad7 Mon Sep 17 00:00:00 2001 From: Zyrouge Date: Wed, 11 Dec 2024 02:10:13 +0530 Subject: [PATCH] refactor: callable value --- packages/beize_compiler/tests/utils.dart | 2 +- .../beize_vm/lib/values/function/call.dart | 4 +- .../lib/values/function/callable.dart | 5 +- .../lib/values/function/function.dart | 22 +++++++- .../lib/values/function/native_function.dart | 20 ++++--- .../lib/values/function/unawaited.dart | 4 +- packages/beize_vm/lib/values/list.dart | 34 ++++++------ packages/beize_vm/lib/values/number.dart | 4 +- packages/beize_vm/lib/values/string.dart | 39 +++++++------- packages/beize_vm/lib/vm/call_frame.dart | 54 +++---------------- packages/beize_vm/lib/vm/natives/boolean.dart | 2 +- packages/beize_vm/lib/vm/natives/convert.dart | 22 ++++---- .../beize_vm/lib/vm/natives/datetime.dart | 4 +- .../beize_vm/lib/vm/natives/exception.dart | 2 +- packages/beize_vm/lib/vm/natives/fiber.dart | 4 +- .../beize_vm/lib/vm/natives/function.dart | 2 +- packages/beize_vm/lib/vm/natives/globals.dart | 2 +- packages/beize_vm/lib/vm/natives/list.dart | 6 +-- packages/beize_vm/lib/vm/natives/math.dart | 30 +++++------ packages/beize_vm/lib/vm/natives/number.dart | 8 +-- packages/beize_vm/lib/vm/natives/object.dart | 16 +++--- packages/beize_vm/lib/vm/natives/regexp.dart | 24 ++++----- packages/beize_vm/lib/vm/natives/string.dart | 6 +-- .../beize_vm/lib/vm/natives/unawaited.dart | 2 +- 24 files changed, 147 insertions(+), 171 deletions(-) diff --git a/packages/beize_compiler/tests/utils.dart b/packages/beize_compiler/tests/utils.dart index 9733763..0444170 100644 --- a/packages/beize_compiler/tests/utils.dart +++ b/packages/beize_compiler/tests/utils.dart @@ -23,7 +23,7 @@ Future> executeTestScript( final BeizeVM vm = BeizeVM(program, BeizeVMOptions()); final List output = []; final BeizeNativeFunctionValue out = BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue value = call.argumentAt(0).cast(); output.add(value.value); return BeizeNullValue.value; diff --git a/packages/beize_vm/lib/values/function/call.dart b/packages/beize_vm/lib/values/function/call.dart index ff0cb6c..2b1e493 100644 --- a/packages/beize_vm/lib/values/function/call.dart +++ b/packages/beize_vm/lib/values/function/call.dart @@ -2,8 +2,8 @@ import '../../errors/exports.dart'; import '../../vm/exports.dart'; import '../exports.dart'; -class BeizeNativeFunctionCall { - BeizeNativeFunctionCall({ +class BeizeFunctionCall { + BeizeFunctionCall({ required this.frame, required this.arguments, }); diff --git a/packages/beize_vm/lib/values/function/callable.dart b/packages/beize_vm/lib/values/function/callable.dart index b79d8ea..7b0b6df 100644 --- a/packages/beize_vm/lib/values/function/callable.dart +++ b/packages/beize_vm/lib/values/function/callable.dart @@ -1,3 +1,6 @@ +import '../../vm/exports.dart'; import '../exports.dart'; -abstract class BeizeCallableValue extends BeizeValue {} +abstract class BeizeCallableValue extends BeizeValue { + BeizeInterpreterResult kCall(final BeizeFunctionCall call); +} diff --git a/packages/beize_vm/lib/values/function/function.dart b/packages/beize_vm/lib/values/function/function.dart index 6193199..cade735 100644 --- a/packages/beize_vm/lib/values/function/function.dart +++ b/packages/beize_vm/lib/values/function/function.dart @@ -18,7 +18,7 @@ class BeizeFunctionValue extends BeizePrimitiveObjectValue switch (key.value) { case 'call': return BeizeNativeFunctionValue( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeListValue arguments = call.argumentAt(0); return call.frame.callValue(this, arguments.elements); }, @@ -33,6 +33,26 @@ class BeizeFunctionValue extends BeizePrimitiveObjectValue @override final BeizeValueKind kind = BeizeValueKind.function; + @override + BeizeInterpreterResult kCall(final BeizeFunctionCall call) { + if (!constant.isAsync) { + final BeizeCallFrame frame = + call.frame.prepareCallFunctionValue(call.arguments, this); + return BeizeInterpreter(frame).run(); + } + final BeizeUnawaitedValue value = BeizeUnawaitedValue( + call.arguments, + (final BeizeFunctionCall nCall) async { + final BeizeCallFrame frame = + nCall.frame.prepareCallFunctionValue(nCall.arguments, this); + final BeizeInterpreterResult result = + await BeizeInterpreter(frame).runAsync(); + return result; + }, + ); + return BeizeInterpreterResult.success(value); + } + @override BeizeFunctionValue kClone() => BeizeFunctionValue(constant: constant, namespace: namespace); diff --git a/packages/beize_vm/lib/values/function/native_function.dart b/packages/beize_vm/lib/values/function/native_function.dart index 3a0fe53..e783767 100644 --- a/packages/beize_vm/lib/values/function/native_function.dart +++ b/packages/beize_vm/lib/values/function/native_function.dart @@ -2,15 +2,15 @@ import '../../vm/exports.dart'; import '../exports.dart'; typedef BeizeNativeExecuteFunction = BeizeInterpreterResult Function( - BeizeNativeFunctionCall call, + BeizeFunctionCall call, ); typedef BeizeNativeSyncFunction = BeizeValue Function( - BeizeNativeFunctionCall call, + BeizeFunctionCall call, ); typedef BeizeNativeAsyncFunction = Future Function( - BeizeNativeFunctionCall call, + BeizeFunctionCall call, ); class BeizeNativeFunctionValue extends BeizePrimitiveObjectValue @@ -29,14 +29,12 @@ class BeizeNativeFunctionValue extends BeizePrimitiveObjectValue final BeizeNativeExecuteFunction function; - BeizeInterpreterResult execute(final BeizeNativeFunctionCall call) { - final BeizeInterpreterResult result = function(call); - return result; - } - @override final BeizeValueKind kind = BeizeValueKind.nativeFunction; + @override + BeizeInterpreterResult kCall(final BeizeFunctionCall call) => function(call); + @override BeizeNativeFunctionValue kClone() => BeizeNativeFunctionValue(function); @@ -52,7 +50,7 @@ class BeizeNativeFunctionValue extends BeizePrimitiveObjectValue static BeizeNativeExecuteFunction convertSyncFunction( final BeizeNativeSyncFunction function, ) => - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { try { final BeizeValue value = function(call); return BeizeInterpreterResult.success(value); @@ -68,7 +66,7 @@ class BeizeNativeFunctionValue extends BeizePrimitiveObjectValue static BeizeNativeExecuteFunction convertAsyncFunction( final BeizeNativeAsyncFunction function, ) => - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = BeizeUnawaitedValue( call.arguments, wrapAsyncFunction(function), @@ -79,7 +77,7 @@ class BeizeNativeFunctionValue extends BeizePrimitiveObjectValue static BeizeUnawaitedFunction wrapAsyncFunction( final BeizeNativeAsyncFunction function, ) => - (final BeizeNativeFunctionCall call) async { + (final BeizeFunctionCall call) async { try { final BeizeValue value = await function(call); return BeizeInterpreterResult.success(value); diff --git a/packages/beize_vm/lib/values/function/unawaited.dart b/packages/beize_vm/lib/values/function/unawaited.dart index a6b0f63..1c159ff 100644 --- a/packages/beize_vm/lib/values/function/unawaited.dart +++ b/packages/beize_vm/lib/values/function/unawaited.dart @@ -2,7 +2,7 @@ import '../../vm/exports.dart'; import '../exports.dart'; typedef BeizeUnawaitedFunction = Future Function( - BeizeNativeFunctionCall call, + BeizeFunctionCall call, ); class BeizeUnawaitedValue extends BeizePrimitiveObjectValue { @@ -13,7 +13,7 @@ class BeizeUnawaitedValue extends BeizePrimitiveObjectValue { Future execute(final BeizeCallFrame frame) async { try { - final BeizeNativeFunctionCall call = BeizeNativeFunctionCall( + final BeizeFunctionCall call = BeizeFunctionCall( arguments: arguments, frame: frame, ); diff --git a/packages/beize_vm/lib/values/list.dart b/packages/beize_vm/lib/values/list.dart index 5a957e0..e352f90 100644 --- a/packages/beize_vm/lib/values/list.dart +++ b/packages/beize_vm/lib/values/list.dart @@ -13,7 +13,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { switch (key.value) { case 'push': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { push(call.argumentAt(0)); return BeizeNullValue.value; }, @@ -21,7 +21,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'pushAll': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { pushAll(call.argumentAt(0)); return BeizeNullValue.value; }, @@ -63,7 +63,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'contains': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); return BeizeBooleanValue( elements.any((final BeizeValue x) => value.kEquals(x)), @@ -73,7 +73,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'indexOf': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); return BeizeNumberValue( elements @@ -85,7 +85,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'lastIndexOf': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); return BeizeNumberValue( elements @@ -97,7 +97,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'remove': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); elements.removeWhere((final BeizeValue x) => value.kEquals(x)); return BeizeNullValue.value; @@ -106,7 +106,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'sublist': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue start = call.argumentAt(0); final BeizeNumberValue end = call.argumentAt(1); final int iEnd = end.intValue; @@ -120,7 +120,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'find': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); for (final BeizeValue x in elements) { final BeizeValue result = call.frame @@ -133,7 +133,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'findIndex': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); for (int i = 0; i < elements.length; i++) { final BeizeValue x = elements[i]; @@ -149,7 +149,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'findLastIndex': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); for (int i = elements.length - 1; i >= 0; i--) { final BeizeValue x = elements[i]; @@ -165,7 +165,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'filter': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); final BeizeListValue nValue = BeizeListValue(); for (final BeizeValue x in elements) { @@ -181,7 +181,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'map': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); final BeizeListValue nValue = BeizeListValue(); for (final BeizeValue x in elements) { @@ -195,7 +195,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'where': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); final BeizeListValue nValue = BeizeListValue(); for (final BeizeValue x in elements) { @@ -211,7 +211,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'sort': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); final List sorted = elements.toList(); for (int i = 0; i < sorted.length; i++) { @@ -237,7 +237,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'flat': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue level = call.argumentAt(0); return BeizeListValue(flat(level.intValue)); }, @@ -265,7 +265,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'forEach': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue predicate = call.argumentAt(0); for (final BeizeValue x in elements) { call.frame.callValue(predicate, [x]); @@ -276,7 +276,7 @@ class BeizeListValue extends BeizePrimitiveObjectValue { case 'join': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue delimiter = call.argumentAt(0); final String delimiterValue = delimiter.value; final StringBuffer buffer = StringBuffer(); diff --git a/packages/beize_vm/lib/values/number.dart b/packages/beize_vm/lib/values/number.dart index 8cf82d8..06b3db5 100644 --- a/packages/beize_vm/lib/values/number.dart +++ b/packages/beize_vm/lib/values/number.dart @@ -71,7 +71,7 @@ class BeizeNumberValue extends BeizePrimitiveObjectValue { case 'toPrecisionString': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) => BeizeStringValue( + (final BeizeFunctionCall call) => BeizeStringValue( value.toStringAsPrecision( call.argumentAt(0).intValue, ), @@ -80,7 +80,7 @@ class BeizeNumberValue extends BeizePrimitiveObjectValue { case 'toRadixString': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) => BeizeStringValue( + (final BeizeFunctionCall call) => BeizeStringValue( intValue.toRadixString( call.argumentAt(0).intValue, ), diff --git a/packages/beize_vm/lib/values/string.dart b/packages/beize_vm/lib/values/string.dart index 1dc5a9e..134bdee 100644 --- a/packages/beize_vm/lib/values/string.dart +++ b/packages/beize_vm/lib/values/string.dart @@ -27,7 +27,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'compareTo': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeNumberValue( value.compareTo(other.value).toDouble(), @@ -37,7 +37,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'contains': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeBooleanValue(value.contains(other.value)); }, @@ -45,7 +45,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'startsWith': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeBooleanValue(value.startsWith(other.value)); }, @@ -53,7 +53,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'endsWith': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeBooleanValue(value.endsWith(other.value)); }, @@ -61,7 +61,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'indexOf': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeNumberValue( value.indexOf(other.value).toDouble(), @@ -71,7 +71,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'lastIndexOf': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue other = call.argumentAt(0); return BeizeNumberValue( value.lastIndexOf(other.value).toDouble(), @@ -81,7 +81,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'substring': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue start = call.argumentAt(0); final BeizeNumberValue end = call.argumentAt(1); return BeizeStringValue( @@ -92,7 +92,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'replaceFirst': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue from = call.argumentAt(0); final BeizeStringValue to = call.argumentAt(1); return BeizeStringValue( @@ -103,7 +103,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'replaceAll': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue from = call.argumentAt(0); final BeizeStringValue to = call.argumentAt(1); return BeizeStringValue( @@ -114,7 +114,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'replaceFirstMapped': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue result = replaceMapped(call, 1); return result; }, @@ -122,7 +122,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'replaceAllMapped': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue result = replaceMapped(call); return result; }, @@ -144,24 +144,21 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { ); case 'padLeft': - return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + return BeizeNativeFunctionValue.sync((final BeizeFunctionCall call) { final BeizeNumberValue amount = call.argumentAt(0); final BeizeStringValue by = call.argumentAt(1); return BeizeStringValue(value.padLeft(amount.intValue, by.value)); }); case 'padRight': - return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + return BeizeNativeFunctionValue.sync((final BeizeFunctionCall call) { final BeizeNumberValue amount = call.argumentAt(0); final BeizeStringValue by = call.argumentAt(1); return BeizeStringValue(value.padRight(amount.intValue, by.value)); }); case 'split': - return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + return BeizeNativeFunctionValue.sync((final BeizeFunctionCall call) { final BeizeStringValue delimiter = call.argumentAt(0); return BeizeListValue( value @@ -173,7 +170,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'codeUnitAt': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue index = call.argumentAt(0); return BeizeNumberValue( value.codeUnitAt(index.intValue).toDouble(), @@ -183,7 +180,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'charAt': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue index = call.argumentAt(0); return BeizeStringValue(value[index.intValue]); }, @@ -210,7 +207,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { case 'format': return BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); return BeizeStringValue(format(value)); }, @@ -223,7 +220,7 @@ class BeizeStringValue extends BeizePrimitiveObjectValue { } BeizeStringValue replaceMapped( - final BeizeNativeFunctionCall call, [ + final BeizeFunctionCall call, [ final int? count, ]) { final BeizeStringValue pattern = call.argumentAt(0); diff --git a/packages/beize_vm/lib/vm/call_frame.dart b/packages/beize_vm/lib/vm/call_frame.dart index 7af3a44..0d5ee0a 100644 --- a/packages/beize_vm/lib/vm/call_frame.dart +++ b/packages/beize_vm/lib/vm/call_frame.dart @@ -1,6 +1,5 @@ import '../bytecode.dart'; import '../values/exports.dart'; -import 'interpreter.dart'; import 'namespace.dart'; import 'result.dart'; import 'try_frame.dart'; @@ -28,15 +27,12 @@ class BeizeCallFrame { final BeizeValue value, final List arguments, ) { - if (value is BeizeFunctionValue) { - if (value.isAsync) { - return callAsyncFunctionValue(arguments, value); - } else { - return callFunctionValue(arguments, value); - } - } - if (value is BeizeNativeFunctionValue) { - return callNativeFunction(value, arguments); + if (value is BeizeCallableValue) { + final BeizeFunctionCall call = BeizeFunctionCall( + frame: this, + arguments: arguments, + ); + return value.kCall(call); } return BeizeInterpreterResult.fail( BeizeExceptionValue( @@ -46,18 +42,6 @@ class BeizeCallFrame { ); } - BeizeInterpreterResult callNativeFunction( - final BeizeNativeFunctionValue function, - final List arguments, - ) { - final BeizeNativeFunctionCall call = BeizeNativeFunctionCall( - frame: this, - arguments: arguments, - ); - final BeizeInterpreterResult result = function.execute(call); - return result; - } - BeizeCallFrame prepareCallFunctionValue( final List arguments, final BeizeFunctionValue function, @@ -80,32 +64,6 @@ class BeizeCallFrame { return frame; } - BeizeInterpreterResult callFunctionValue( - final List arguments, - final BeizeFunctionValue function, - ) { - final BeizeCallFrame frame = prepareCallFunctionValue(arguments, function); - final BeizeInterpreterResult result = BeizeInterpreter(frame).run(); - return result; - } - - BeizeInterpreterResult callAsyncFunctionValue( - final List arguments, - final BeizeFunctionValue function, - ) { - final BeizeUnawaitedValue value = BeizeUnawaitedValue( - arguments, - (final BeizeNativeFunctionCall call) async { - final BeizeCallFrame frame = - prepareCallFunctionValue(call.arguments, function); - final BeizeInterpreterResult result = - await BeizeInterpreter(frame).runAsync(); - return result; - }, - ); - return BeizeInterpreterResult.success(value); - } - BeizeConstant readConstantAt(final int index) => vm.program.constantAt(function.chunk.codeAt(index)); diff --git a/packages/beize_vm/lib/vm/natives/boolean.dart b/packages/beize_vm/lib/vm/natives/boolean.dart index 41e6749..4092648 100644 --- a/packages/beize_vm/lib/vm/natives/boolean.dart +++ b/packages/beize_vm/lib/vm/natives/boolean.dart @@ -7,7 +7,7 @@ abstract class BeizeBooleanNatives { value.set( BeizeStringValue('from'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); return BeizeBooleanValue(value.isTruthy); }, diff --git a/packages/beize_vm/lib/vm/natives/convert.dart b/packages/beize_vm/lib/vm/natives/convert.dart index 6b091c5..ba559b1 100644 --- a/packages/beize_vm/lib/vm/natives/convert.dart +++ b/packages/beize_vm/lib/vm/natives/convert.dart @@ -9,7 +9,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('newBytesList'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); if (value is BeizeNullValue) { return newBytesList([]); @@ -28,7 +28,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('encodeAscii'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return newBytesList(ascii.encode(input.value)); }, @@ -37,7 +37,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('decodeAscii'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeObjectValue input = call.argumentAt(0); return BeizeStringValue(ascii.decode(toBytes(input))); }, @@ -46,7 +46,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('encodeBase64'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeObjectValue input = call.argumentAt(0); return BeizeStringValue(base64Encode(toBytes(input))); }, @@ -55,7 +55,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('decodeBase64'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return newBytesList(base64Decode(input.value)); }, @@ -64,7 +64,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('encodeLatin1'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return newBytesList(latin1.encode(input.value)); }, @@ -73,7 +73,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('decodeLatin1'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeObjectValue input = call.argumentAt(0); return BeizeStringValue(latin1.decode(toBytes(input))); }, @@ -82,7 +82,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('encodeUtf8'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return newBytesList(utf8.encode(input.value)); }, @@ -91,7 +91,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('decodeUtf8'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeObjectValue input = call.argumentAt(0); return BeizeStringValue(utf8.decode(toBytes(input))); }, @@ -100,7 +100,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('encodeJson'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue input = call.argumentAt(0); return BeizeStringValue(jsonEncode(toJson(input))); }, @@ -109,7 +109,7 @@ abstract class BeizeConvertNatives { value.set( BeizeStringValue('decodeJson'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return fromJson(jsonDecode(input.value)); }, diff --git a/packages/beize_vm/lib/vm/natives/datetime.dart b/packages/beize_vm/lib/vm/natives/datetime.dart index ae08ec3..450b84b 100644 --- a/packages/beize_vm/lib/vm/natives/datetime.dart +++ b/packages/beize_vm/lib/vm/natives/datetime.dart @@ -7,7 +7,7 @@ abstract class BeizeDateTimeNatives { value.set( BeizeStringValue('fromMillisecondsSinceEpoch'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue ms = call.argumentAt(0); return newDateTimeInst( DateTime.fromMillisecondsSinceEpoch(ms.intValue), @@ -18,7 +18,7 @@ abstract class BeizeDateTimeNatives { value.set( BeizeStringValue('parse'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue value = call.argumentAt(0); return newDateTimeInst(DateTime.parse(value.value)); }, diff --git a/packages/beize_vm/lib/vm/natives/exception.dart b/packages/beize_vm/lib/vm/natives/exception.dart index 4e7abb8..c34224d 100644 --- a/packages/beize_vm/lib/vm/natives/exception.dart +++ b/packages/beize_vm/lib/vm/natives/exception.dart @@ -7,7 +7,7 @@ abstract class BeizeExceptionNatives { value.set( BeizeStringValue('new'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue message = call.argumentAt(0); final BeizeValue stackTrace = call.argumentAt(1); return BeizeExceptionValue( diff --git a/packages/beize_vm/lib/vm/natives/fiber.dart b/packages/beize_vm/lib/vm/natives/fiber.dart index 5958164..acd149f 100644 --- a/packages/beize_vm/lib/vm/natives/fiber.dart +++ b/packages/beize_vm/lib/vm/natives/fiber.dart @@ -8,7 +8,7 @@ abstract class BeizeFiberNatives { value.set( BeizeStringValue('wait'), BeizeNativeFunctionValue.async( - (final BeizeNativeFunctionCall call) async { + (final BeizeFunctionCall call) async { final BeizeNumberValue value = call.argumentAt(0); await Future.delayed( Duration(milliseconds: value.unsafeIntValue), @@ -20,7 +20,7 @@ abstract class BeizeFiberNatives { value.set( BeizeStringValue('runConcurrently'), BeizeNativeFunctionValue.async( - (final BeizeNativeFunctionCall call) async { + (final BeizeFunctionCall call) async { final BeizeListValue fns = call.argumentAt(0); final List result = await Future.wait( fns.elements.map( diff --git a/packages/beize_vm/lib/vm/natives/function.dart b/packages/beize_vm/lib/vm/natives/function.dart index ed12a7b..d12497a 100644 --- a/packages/beize_vm/lib/vm/natives/function.dart +++ b/packages/beize_vm/lib/vm/natives/function.dart @@ -7,7 +7,7 @@ abstract class BeizeFunctionNatives { value.set( BeizeStringValue('call'), BeizeNativeFunctionValue( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeCallableValue fn = call.argumentAt(0); final BeizeListValue arguments = call.argumentAt(1); return call.frame.callValue(fn, arguments.elements); diff --git a/packages/beize_vm/lib/vm/natives/globals.dart b/packages/beize_vm/lib/vm/natives/globals.dart index 7bb7bcc..7f3e37d 100644 --- a/packages/beize_vm/lib/vm/natives/globals.dart +++ b/packages/beize_vm/lib/vm/natives/globals.dart @@ -5,7 +5,7 @@ abstract class BeizeGlobalsNatives { static void bind(final BeizeNamespace namespace) { namespace.declare( 'typeof', - BeizeNativeFunctionValue.sync((final BeizeNativeFunctionCall call) { + BeizeNativeFunctionValue.sync((final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); return BeizeStringValue(value.kind.code); }), diff --git a/packages/beize_vm/lib/vm/natives/list.dart b/packages/beize_vm/lib/vm/natives/list.dart index 9b8a082..2237dfb 100644 --- a/packages/beize_vm/lib/vm/natives/list.dart +++ b/packages/beize_vm/lib/vm/natives/list.dart @@ -8,7 +8,7 @@ abstract class BeizeListNatives { value.set( BeizeStringValue('from'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeValue value = call.argumentAt(0); if (value is BeizeListValue) { return value.kClone(); @@ -26,7 +26,7 @@ abstract class BeizeListNatives { value.set( BeizeStringValue('generate'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final int length = call.argumentAt(0).intValue; final BeizeCallableValue predicate = call.argumentAt(1); final BeizeListValue result = BeizeListValue(); @@ -45,7 +45,7 @@ abstract class BeizeListNatives { value.set( BeizeStringValue('filled'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final int length = call.argumentAt(0).intValue; final BeizeValue value = call.argumentAt(1); final BeizeListValue result = diff --git a/packages/beize_vm/lib/vm/natives/math.dart b/packages/beize_vm/lib/vm/natives/math.dart index 31d3067..5642733 100644 --- a/packages/beize_vm/lib/vm/natives/math.dart +++ b/packages/beize_vm/lib/vm/natives/math.dart @@ -11,7 +11,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('random'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double value = random.nextDouble(); return BeizeNumberValue(value); }, @@ -20,13 +20,13 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('pi'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) => BeizeNumberValue(pi), + (final BeizeFunctionCall call) => BeizeNumberValue(pi), ), ); value.set( BeizeStringValue('sin'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(sin(a)); }, @@ -35,7 +35,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('cos'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(cos(a)); }, @@ -44,7 +44,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('tan'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(tan(a)); }, @@ -53,7 +53,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('asin'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(asin(a)); }, @@ -62,7 +62,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('acos'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(acos(a)); }, @@ -71,7 +71,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('atan'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(atan(a)); }, @@ -80,7 +80,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('atan2'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; final double b = call.argumentAt(1).value; return BeizeNumberValue(atan2(a, b)); @@ -90,7 +90,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('exp'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(exp(a)); }, @@ -99,7 +99,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('log'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(log(a)); }, @@ -108,7 +108,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('min'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; final double b = call.argumentAt(1).value; return BeizeNumberValue(min(a, b)); @@ -118,7 +118,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('max'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; final double b = call.argumentAt(1).value; return BeizeNumberValue(max(a, b)); @@ -128,7 +128,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('pow'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; final double b = call.argumentAt(1).value; return BeizeNumberValue(pow(a, b).toDouble()); @@ -138,7 +138,7 @@ abstract class BeizeMathNatives { value.set( BeizeStringValue('sqrt'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final double a = call.argumentAt(0).value; return BeizeNumberValue(sqrt(a)); }, diff --git a/packages/beize_vm/lib/vm/natives/number.dart b/packages/beize_vm/lib/vm/natives/number.dart index 9b4f56f..89fb6f6 100644 --- a/packages/beize_vm/lib/vm/natives/number.dart +++ b/packages/beize_vm/lib/vm/natives/number.dart @@ -24,7 +24,7 @@ abstract class BeizeNumberNatives { value.set( BeizeStringValue('from'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final String value = call.argumentAt(0).kToString(); final double? parsed = double.tryParse(value); if (parsed is double) return BeizeNumberValue(parsed); @@ -35,7 +35,7 @@ abstract class BeizeNumberNatives { value.set( BeizeStringValue('fromOrNull'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final String value = call.argumentAt(0).kToString(); final double? parsed = double.tryParse(value); if (parsed is double) return BeizeNumberValue(parsed); @@ -46,7 +46,7 @@ abstract class BeizeNumberNatives { value.set( BeizeStringValue('fromRadix'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final String value = call.argumentAt(0).kToString(); final BeizeNumberValue radix = call.argumentAt(1); final double? parsed = @@ -59,7 +59,7 @@ abstract class BeizeNumberNatives { value.set( BeizeStringValue('fromRadixOrNull'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final String value = call.argumentAt(0).kToString(); final BeizeNumberValue radix = call.argumentAt(1); final double? parsed = diff --git a/packages/beize_vm/lib/vm/natives/object.dart b/packages/beize_vm/lib/vm/natives/object.dart index a3f8cac..a45e464 100644 --- a/packages/beize_vm/lib/vm/natives/object.dart +++ b/packages/beize_vm/lib/vm/natives/object.dart @@ -7,7 +7,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('from'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeObjectValue value = call.argumentAt(0); return value.kClone(); }, @@ -16,7 +16,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('fromEntries'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeListValue value = call.argumentAt(0); final BeizeObjectValue nValue = BeizeObjectValue(); for (final int x in value.keys.keys) { @@ -29,7 +29,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('apply'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue a = call.argumentAt(0); final BeizePrimitiveObjectValue b = call.argumentAt(1); for (final int x in b.keys.keys) { @@ -42,7 +42,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('entries'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); return entries(value); }, @@ -51,7 +51,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('keys'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); return BeizeListValue(value.keys.values.toList()); }, @@ -60,7 +60,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('values'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); return BeizeListValue(value.values.values.toList()); }, @@ -69,7 +69,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('clone'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); return value.kClone(); }, @@ -78,7 +78,7 @@ abstract class BeizeObjectNatives { value.set( BeizeStringValue('deleteProperty'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizePrimitiveObjectValue value = call.argumentAt(0); final BeizeValue key = call.argumentAt(1); value.delete(key); diff --git a/packages/beize_vm/lib/vm/natives/regexp.dart b/packages/beize_vm/lib/vm/natives/regexp.dart index 234af25..0012491 100644 --- a/packages/beize_vm/lib/vm/natives/regexp.dart +++ b/packages/beize_vm/lib/vm/natives/regexp.dart @@ -7,7 +7,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('new'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue value = call.argumentAt(0); final BeizeValue flags = call.argumentAt(1); return newRegExp( @@ -52,7 +52,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('hasMatch'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); return BeizeBooleanValue(regex.hasMatch(input.value)); }, @@ -61,7 +61,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('stringMatch'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final String? match = regex.stringMatch(input.value); return match is String @@ -73,7 +73,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('firstMatch'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final RegExpMatch? match = regex.firstMatch(input.value); return match is RegExpMatch @@ -85,7 +85,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('allMatches'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final Iterable matches = regex.allMatches(input.value); return BeizeListValue(matches.map(newRegExpMatch).toList()); @@ -95,7 +95,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('replaceFirst'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final BeizeStringValue to = call.argumentAt(1); return BeizeStringValue( @@ -107,7 +107,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('replaceAll'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final BeizeStringValue to = call.argumentAt(1); return BeizeStringValue( @@ -119,7 +119,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('replaceFirstMapped'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue result = replaceMapped(regex, call, 1); return result; }, @@ -128,7 +128,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('replaceAllMapped'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue result = replaceMapped(regex, call); return result; }, @@ -156,7 +156,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('namedGroup'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeStringValue input = call.argumentAt(0); final String? result = match.namedGroup(input.value); return result is String @@ -168,7 +168,7 @@ abstract class BeizeRegExpNatives { value.set( BeizeStringValue('group'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue input = call.argumentAt(0); final String? result = match.group(input.intValue); return result is String @@ -182,7 +182,7 @@ abstract class BeizeRegExpNatives { static BeizeStringValue replaceMapped( final RegExp regex, - final BeizeNativeFunctionCall call, [ + final BeizeFunctionCall call, [ final int? count, ]) { final BeizeStringValue input = call.argumentAt(0); diff --git a/packages/beize_vm/lib/vm/natives/string.dart b/packages/beize_vm/lib/vm/natives/string.dart index 5f6a46d..72af2a7 100644 --- a/packages/beize_vm/lib/vm/natives/string.dart +++ b/packages/beize_vm/lib/vm/natives/string.dart @@ -7,7 +7,7 @@ abstract class BeizeStringNatives { value.set( BeizeStringValue('from'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final String value = call.argumentAt(0).kToString(); return BeizeStringValue(value); }, @@ -16,7 +16,7 @@ abstract class BeizeStringNatives { value.set( BeizeStringValue('fromCodeUnit'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeNumberValue value = call.argumentAt(0); return BeizeStringValue(String.fromCharCode(value.intValue)); }, @@ -25,7 +25,7 @@ abstract class BeizeStringNatives { value.set( BeizeStringValue('fromCodeUnits'), BeizeNativeFunctionValue.sync( - (final BeizeNativeFunctionCall call) { + (final BeizeFunctionCall call) { final BeizeListValue value = call.argumentAt(0); return BeizeStringValue( String.fromCharCodes( diff --git a/packages/beize_vm/lib/vm/natives/unawaited.dart b/packages/beize_vm/lib/vm/natives/unawaited.dart index 4154d3c..d732356 100644 --- a/packages/beize_vm/lib/vm/natives/unawaited.dart +++ b/packages/beize_vm/lib/vm/natives/unawaited.dart @@ -7,7 +7,7 @@ abstract class BeizeUnawaitedNatives { value.set( BeizeStringValue('value'), BeizeNativeFunctionValue.async( - (final BeizeNativeFunctionCall call) async { + (final BeizeFunctionCall call) async { final BeizeValue value = call.argumentAt(0); return value; },