diff options
author | 2023-05-22 18:51:05 -0700 | |
---|---|---|
committer | 2023-05-22 18:51:05 -0700 | |
commit | fc40c690ea30a632a8d0d9490321c50ec898d8a5 (patch) | |
tree | 6e3ca0bb2c02347006a6b2a09c4aa156b86bd770 /src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp | |
parent | 23d42dc2377440dedc9d8e423f1ea077507d62c8 (diff) | |
download | bun-fc40c690ea30a632a8d0d9490321c50ec898d8a5.tar.gz bun-fc40c690ea30a632a8d0d9490321c50ec898d8a5.tar.zst bun-fc40c690ea30a632a8d0d9490321c50ec898d8a5.zip |
Write out builtins with TypeScript + Minify them (#2999)
* start work drafting how builtins will work
* work on ts builtin
* builtins stuff so far
* builtins
* done for today
* continue work
* working on it
* bindings so far
* well, it builds. doesnt run
* IT RUNS
* still lots of ts errors but it is functional
* sloppy mode
Diffstat (limited to 'src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp')
-rw-r--r-- | src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp b/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp deleted file mode 100644 index 6e663afce..000000000 --- a/src/bun.js/builtins/cpp/JSBufferConstructorBuiltins.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) 2015 Igalia - * Copyright (c) 2015 Igalia S.L. - * Copyright (c) 2015 Igalia. - * Copyright (c) 2015, 2016 Canon Inc. All rights reserved. - * Copyright (c) 2015, 2016, 2017 Canon Inc. - * Copyright (c) 2016, 2020 Apple Inc. All rights reserved. - * Copyright (c) 2023 Codeblog Corp. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -// DO NOT EDIT THIS FILE. It is automatically generated from JavaScript files for -// builtins by the script: Source/JavaScriptCore/Scripts/generate-js-builtins.py - -#include "config.h" -#include "JSBufferConstructorBuiltins.h" - -#include "WebCoreJSClientData.h" -#include <JavaScriptCore/IdentifierInlines.h> -#include <JavaScriptCore/ImplementationVisibility.h> -#include <JavaScriptCore/Intrinsic.h> -#include <JavaScriptCore/JSObjectInlines.h> -#include <JavaScriptCore/VM.h> - -namespace WebCore { - -const JSC::ConstructAbility s_jsBufferConstructorFromCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; -const JSC::ConstructorKind s_jsBufferConstructorFromCodeConstructorKind = JSC::ConstructorKind::None; -const JSC::ImplementationVisibility s_jsBufferConstructorFromCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_jsBufferConstructorFromCodeLength = 1762; -static const JSC::Intrinsic s_jsBufferConstructorFromCodeIntrinsic = JSC::NoIntrinsic; -const char* const s_jsBufferConstructorFromCode = - "(function (items) {\n" \ - " \"use strict\";\n" \ - "\n" \ - " if (@isUndefinedOrNull(items)) {\n" \ - " @throwTypeError(\n" \ - " \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.\",\n" \ - " );\n" \ - " }\n" \ - " \n" \ - "\n" \ - " //\n" \ - " if (\n" \ - " typeof items === \"string\" ||\n" \ - " (typeof items === \"object\" &&\n" \ - " (@isTypedArrayView(items) ||\n" \ - " items instanceof ArrayBuffer ||\n" \ - " items instanceof SharedArrayBuffer ||\n" \ - " items instanceof @String))\n" \ - " ) {\n" \ - " switch (@argumentCount()) {\n" \ - " case 1: {\n" \ - " return new @Buffer(items);\n" \ - " }\n" \ - " case 2: {\n" \ - " return new @Buffer(items, @argument(1));\n" \ - " }\n" \ - " default: {\n" \ - " return new @Buffer(items, @argument(1), @argument(2));\n" \ - " }\n" \ - " }\n" \ - " }\n" \ - "\n" \ - " var arrayLike = @toObject(\n" \ - " items,\n" \ - " \"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\",\n" \ - " );\n" \ - "\n" \ - " if (!@isJSArray(arrayLike)) {\n" \ - " const toPrimitive = @tryGetByIdWithWellKnownSymbol(items, \"toPrimitive\");\n" \ - "\n" \ - " if (toPrimitive) {\n" \ - " const primitive = toPrimitive.@call(items, \"string\");\n" \ - "\n" \ - " if (typeof primitive === \"string\") {\n" \ - " switch (@argumentCount()) {\n" \ - " case 1: {\n" \ - " return new @Buffer(primitive);\n" \ - " }\n" \ - " case 2: {\n" \ - " return new @Buffer(primitive, @argument(1));\n" \ - " }\n" \ - " default: {\n" \ - " return new @Buffer(primitive, @argument(1), @argument(2));\n" \ - " }\n" \ - " }\n" \ - " }\n" \ - " }\n" \ - "\n" \ - " if (!(\"length\" in arrayLike) || @isCallable(arrayLike)) {\n" \ - " @throwTypeError(\n" \ - " \"The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object.\",\n" \ - " );\n" \ - " }\n" \ - " }\n" \ - "\n" \ - " //\n" \ - " //\n" \ - " //\n" \ - " return new @Buffer(@Uint8Array.from(arrayLike).buffer);\n" \ - "})\n" \ -; - - -#define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ -JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ -{\ - JSVMClientData* clientData = static_cast<JSVMClientData*>(vm.clientData); \ - return clientData->builtinFunctions().jsBufferConstructorBuiltins().codeName##Executable()->link(vm, nullptr, clientData->builtinFunctions().jsBufferConstructorBuiltins().codeName##Source(), std::nullopt, s_##codeName##Intrinsic); \ -} -WEBCORE_FOREACH_JSBUFFERCONSTRUCTOR_BUILTIN_CODE(DEFINE_BUILTIN_GENERATOR) -#undef DEFINE_BUILTIN_GENERATOR - - -} // namespace WebCore |