/** * This source code is licensed under the terms found in the LICENSE file in * node-jsc's root directory. */ #pragma once #include "ErrorStackTrace.h" #include #include "BunClientData.h" using namespace JSC; using namespace WebCore; namespace Zig { class JSCStackFrame; class CallSite final : public JSC::JSNonFinalObject { public: enum class Flags { IsStrict = 1, IsEval = 2, IsConstructor = 4, IsNative = 8, }; private: JSC::WriteBarrier m_thisValue; JSC::WriteBarrier m_function; JSC::WriteBarrier m_functionName; JSC::WriteBarrier m_sourceURL; JSC::JSValue m_lineNumber; JSC::JSValue m_columnNumber; unsigned int m_flags; public: using Base = JSC::JSNonFinalObject; static CallSite* create(JSC::JSGlobalObject* globalObject, JSC::Structure* structure, JSCStackFrame& stackFrame, bool encounteredStrictFrame) { JSC::VM& vm = globalObject->vm(); CallSite* callSite = new (NotNull, JSC::allocateCell(vm)) CallSite(vm, structure); callSite->finishCreation(vm, globalObject, stackFrame, encounteredStrictFrame); return callSite; } DECLARE_INFO; static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) { return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); } template static JSC::GCClient::IsoSubspace* subspaceFor(JSC::VM& vm) { if constexpr (mode == JSC::SubspaceAccess::Concurrently) return nullptr; return WebCore::subspaceForImpl( vm, [](auto& spaces) { return spaces.m_clientSubspaceForCallSite.get(); }, [](auto& spaces, auto&& space) { spaces.m_clientSubspaceForCallSite = std::forward(space); }, [](auto& spaces) { return spaces.m_subspaceForCallSite.get(); }, [](auto& spaces, auto&& space) { spaces.m_subspaceForCallSite = std::forward(space); }); } JSC::JSValue thisValue() const { return m_thisValue.get(); } JSC::JSValue function() const { return m_function.get(); } JSC::JSValue functionName() const { return m_functionName.get(); } JSC::JSValue sourceURL() const { return m_sourceURL.get(); } JSC::JSValue lineNumber() const { return m_lineNumber; } JSC::JSValue columnNumber() const { return m_columnNumber; } bool isEval() const { return m_flags & static_cast(Flags::IsEval); } bool isConstructor() const { return m_flags & static_cast(Flags::IsConstructor); } bool isStrict() const { return m_flags & static_cast(Flags::IsStrict); } bool isNative() const { return m_flags & static_cast(Flags::IsNative); } void setLineNumber(JSC::JSValue lineNumber) { m_lineNumber = lineNumber; } void setColumnNumber(JSC::JSValue columnNumber) { m_columnNumber = columnNumber; } void formatAsString(JSC::VM& vm, JSC::JSGlobalObject* globalObject, WTF::StringBuilder &sb); private: CallSite(JSC::VM& vm, JSC::Structure* structure) : Base(vm, structure) , m_lineNumber(-1) , m_columnNumber(-1) , m_flags(0) { } void finishCreation(VM& vm, JSC::JSGlobalObject* globalObject, JSCStackFrame& stackFrame, bool encounteredStrictFrame); DECLARE_VISIT_CHILDREN; }; } tests Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2023-03-03Fix http server req url (#2285)Gravatar zhiyuan 2-2/+3
2023-03-02docs: Fix variable name in transpiler API docs (#2281)Gravatar aab 1-2/+2
2023-03-02Fix update zls version in devcontainer (#2280)Gravatar zhiyuan 1-2/+1
2023-03-02Update MakefileGravatar Jarred Sumner 1-2/+1
2023-03-02Add a zig fmt action (#2277)Gravatar Jarred Sumner 117-4295/+1764
2023-03-02Add fs/promises tests and migrate fs.test.js to TypeScript (#2279)Gravatar Colin McDonnell 7-42/+103
2023-03-02fix(os.tmpdir()) strip trailing slash on *unix machines (#2276)Gravatar Ciro Spaciari 2-100/+83
2023-03-02Add separate bun-types release CI (#2275)Gravatar Colin McDonnell 3-43/+99
2023-03-02Ensure prettier knows where to lookGravatar Jarred Sumner 6-5/+24
2023-03-02add tests for scoped dependency aliasing (#2271)Gravatar Alex Lam S.L 3-15/+111
2023-03-02fix tmp dir in fetch.tests.js (#2270)Gravatar Ciro Spaciari 1-1/+2
2023-03-02Remake typings for FFI dlopen/linkSymbols + introduce Pointer type (#2227)Gravatar u9g 4-28/+222
2023-03-02put AbortSignal in WebCore namespace (#2267)Gravatar Ciro Spaciari 9-69/+70
2023-03-02only free sink after promises solves (#2268)Gravatar Ciro Spaciari 2-10/+10
2023-03-02Fix `Bun.sleepSync` to actually use milliseconds (#2242)Gravatar Justin Whear 3-5/+57
2023-03-01fix(bindings): mark `JSCInitialize` (#2265)Gravatar Derrick Farris 1-0/+1
2023-03-01Add page descriptions (#2260)Gravatar Colin McDonnell 1-46/+132
2023-03-01fix bun server segfault with abortsignal (#2261)Gravatar Ciro Spaciari 3-133/+79
2023-03-01fix(node:http): match Node `http.request()` GET/HEAD w/ body (#2262)Gravatar Derrick Farris 2-2/+31
2023-03-01Add a test for https request in node:httpGravatar Jarred Sumner 2-17/+28
2023-03-01fix(node:http/https): fix passing `URL` objs to `http.request`(#2253) (#2258)Gravatar Derrick Farris 2-43/+63
2023-03-01Revert "Update clap (#2238)"Gravatar Jarred Sumner 16-290/+1840
2023-03-01Revert "Add `-D`, `--dev` flags for bun install (#2240)"Gravatar Jarred Sumner 1-9/+9
2023-03-01Use GitHub action ID instead of SHA for test workflowGravatar Ashcon Partovi 1-1/+1
2023-03-01avoids segfault after aborted onReject in Bun.serve streams (#2256)Gravatar Ciro Spaciari 1-7/+8
2023-03-01Run tests in CI for bun-linux-aarch64Gravatar Ashcon Partovi 2-1/+30
2023-03-01Revert spawnSync changeGravatar Jarred Sumner 1-1/+2
2023-03-01Update bindings.zigGravatar Jarred Sumner 1-1/+3
2023-03-01fix deinit behavior when connection is aborted using ResponseStream and abort...Gravatar Ciro Spaciari 3-34/+174
2023-03-01fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 (#2249)Gravatar Ciro Spaciari 3-7/+23
2023-03-01Fix async in sqliteGravatar Colin McDonnell 1-2/+2
2023-02-28Forces a specific libdir for c-ares (#2241)Gravatar Justin Whear 1-1/+5
2023-02-28Make Bun.gc(true) more aggressiveGravatar Jarred Sumner 1-0/+3
2023-02-28Expose JSC::Options via `BUN_JSC_` prefixGravatar Jarred Sumner 6-8/+47
2023-02-28fixupGravatar Jarred Sumner 1-1/+1
2023-02-28Fix typecheckGravatar Colin McDonnell 2-1/+4
2023-02-28Fix incorrect Bun version in docs (#2236)Gravatar Derrick Farris 1-1/+1
2023-02-28just some comments fix (#2237)Gravatar Ciro Spaciari 1-4/+2
2023-02-28Add `-D`, `--dev` flags for bun install (#2240)Gravatar Justin Whear 1-9/+9
2023-02-28Document punningGravatar Colin McDonnell 1-1/+18