diff options
Diffstat (limited to 'src/bun.js')
-rw-r--r-- | src/bun.js/bindings/ImportMetaObject.cpp | 5 | ||||
-rw-r--r-- | src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp | 12 | ||||
-rw-r--r-- | src/bun.js/builtins/cpp/ProcessObjectBuiltins.h | 9 | ||||
-rw-r--r-- | src/bun.js/builtins/js/ProcessObject.js | 5 | ||||
-rw-r--r-- | src/bun.js/javascript.zig | 4 | ||||
-rw-r--r-- | src/bun.js/streams.exports.js | 3 | ||||
-rw-r--r-- | src/bun.js/webcore/streams.zig | 31 |
7 files changed, 54 insertions, 15 deletions
diff --git a/src/bun.js/bindings/ImportMetaObject.cpp b/src/bun.js/bindings/ImportMetaObject.cpp index cdd00ced2..09a77d57d 100644 --- a/src/bun.js/bindings/ImportMetaObject.cpp +++ b/src/bun.js/bindings/ImportMetaObject.cpp @@ -155,6 +155,11 @@ JSObject* Zig::ImportMetaObject::createRequireFunction(VM& vm, JSGlobalObject* g auto clientData = WebCore::clientData(vm); requireFunction->putDirectCustomAccessor(vm, clientData->builtinNames().resolvePublicName(), JSC::CustomGetterSetter::create(vm, functionRequireResolveLazyGetter, functionRequireResolveLazySetter), 0); requireFunction->putDirect(vm, clientData->builtinNames().pathPrivateName(), jsOwnedString(vm, pathString), JSC::PropertyAttribute::DontEnum | 0); + + // TODO: use a polyfill with @requireMap to Proxy it so it works for real + // This is just a temporary workaround + requireFunction->putDirect(vm, JSC::Identifier::fromString(vm, "cache"_s), JSC::constructEmptyObject(globalObject), 0); + return requireFunction; } diff --git a/src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp b/src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp index 0a0389ca3..953c8b730 100644 --- a/src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp @@ -49,6 +49,18 @@ namespace WebCore { +const JSC::ConstructAbility s_processObjectEmitWarningCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; +const JSC::ConstructorKind s_processObjectEmitWarningCodeConstructorKind = JSC::ConstructorKind::None; +const JSC::ImplementationVisibility s_processObjectEmitWarningCodeImplementationVisibility = JSC::ImplementationVisibility::Public; +const int s_processObjectEmitWarningCodeLength = 83; +static const JSC::Intrinsic s_processObjectEmitWarningCodeIntrinsic = JSC::NoIntrinsic; +const char* const s_processObjectEmitWarningCode = + "(function (warning) {\n" \ + " \"use strict\";\n" \ + " console.warn.apply(console, arguments);\n" \ + "})\n" \ +; + #define DEFINE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM& vm) \ diff --git a/src/bun.js/builtins/cpp/ProcessObjectBuiltins.h b/src/bun.js/builtins/cpp/ProcessObjectBuiltins.h index b48359479..1a598b911 100644 --- a/src/bun.js/builtins/cpp/ProcessObjectBuiltins.h +++ b/src/bun.js/builtins/cpp/ProcessObjectBuiltins.h @@ -48,13 +48,22 @@ class FunctionExecutable; namespace WebCore { /* ProcessObject */ +extern const char* const s_processObjectEmitWarningCode; +extern const int s_processObjectEmitWarningCodeLength; +extern const JSC::ConstructAbility s_processObjectEmitWarningCodeConstructAbility; +extern const JSC::ConstructorKind s_processObjectEmitWarningCodeConstructorKind; +extern const JSC::ImplementationVisibility s_processObjectEmitWarningCodeImplementationVisibility; #define WEBCORE_FOREACH_PROCESSOBJECT_BUILTIN_DATA(macro) \ + macro(emitWarning, processObjectEmitWarning, 1) \ +#define WEBCORE_BUILTIN_PROCESSOBJECT_EMITWARNING 1 #define WEBCORE_FOREACH_PROCESSOBJECT_BUILTIN_CODE(macro) \ + macro(processObjectEmitWarningCode, emitWarning, ASCIILiteral(), s_processObjectEmitWarningCodeLength) \ #define WEBCORE_FOREACH_PROCESSOBJECT_BUILTIN_FUNCTION_NAME(macro) \ + macro(emitWarning) \ #define DECLARE_BUILTIN_GENERATOR(codeName, functionName, overriddenName, argumentCount) \ JSC::FunctionExecutable* codeName##Generator(JSC::VM&); diff --git a/src/bun.js/builtins/js/ProcessObject.js b/src/bun.js/builtins/js/ProcessObject.js index beaa4aa7a..a61b020b1 100644 --- a/src/bun.js/builtins/js/ProcessObject.js +++ b/src/bun.js/builtins/js/ProcessObject.js @@ -22,3 +22,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +function emitWarning(warning) { + "use strict"; + console.warn.apply(console, arguments); +} diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index 260aca28e..fd4a510db 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -1047,6 +1047,10 @@ pub const VirtualMachine = struct { return; }; + if (log.msgs.items.len > 0) { + log.appendToWithRecycled(old_log, true) catch {}; + } + res.* = ErrorableZigString.ok(ZigString.init(result.path)); } diff --git a/src/bun.js/streams.exports.js b/src/bun.js/streams.exports.js index 4e812437e..c6c2a5a00 100644 --- a/src/bun.js/streams.exports.js +++ b/src/bun.js/streams.exports.js @@ -2039,7 +2039,7 @@ var require_destroy = __commonJS({ r.destroyed = true; } if (!s.constructed) { - this.once(kDestroy, function (er) { + this.once(kDestroy, (er) => { _destroy(this, aggregateTwoErrors(er, err), cb); }); } else { @@ -5825,6 +5825,7 @@ function createNativeStream(nativeType, Readable) { } _construct(cb) { + // TODO: why do we need to set this flag here? this._readableState.constructed = true; cb(); } diff --git a/src/bun.js/webcore/streams.zig b/src/bun.js/webcore/streams.zig index dcbe12ce2..a0a7091f5 100644 --- a/src/bun.js/webcore/streams.zig +++ b/src/bun.js/webcore/streams.zig @@ -3767,22 +3767,25 @@ pub const FileReader = struct { .pending = &this.pending, }; } - } - - // const rc: JSC.Node.Maybe(usize) = if (comptime Environment.isLinux) brk: { - // if (len == 65536 and this.has_adjusted_pipe_size_on_linux and buf_to_use.len > len) { - // var iovecs = [_]std.os.iovec{.{ .iov_base = @intToPtr([*]u8, @ptrToInt(buf_to_use.ptr)), .iov_len = @intCast(usize, buf_to_use.len) }}; - // const rc = bun.C.linux.vmsplice(fd, &iovecs, 1, 0); - // Output.debug("vmsplice({d}, {d}) = {d}", .{ fd, buf_to_use.len, rc }); - // if (JSC.Node.Maybe(usize).errnoSys(rc, .read)) |err| { - // break :brk err; - // } + } else if (this.isFIFO() and this.poll_ref == null and available_to_read == null) { + // we don't know if it's readable or not + if (!bun.isReadable(fd)) { + if (free_buffer_on_error) { + bun.default_allocator.free(buf_to_use); + buf_to_use = read_buf; + } - // break :brk JSC.Node.Maybe(usize){ .result = @intCast(usize, rc) }; - // } + if (view != .zero) { + this.view.set(this.globalThis(), view); + this.buf = read_buf; + } - // break :brk Syscall.read(fd, buf_to_use); - // } else Syscall.read(fd, buf_to_use); + this.watch(fd); + return .{ + .pending = &this.pending, + }; + } + } switch (Syscall.read(fd, buf_to_use)) { .err => |err| { |