aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js')
-rw-r--r--src/bun.js/bindings/ImportMetaObject.cpp5
-rw-r--r--src/bun.js/builtins/cpp/ProcessObjectBuiltins.cpp12
-rw-r--r--src/bun.js/builtins/cpp/ProcessObjectBuiltins.h9
-rw-r--r--src/bun.js/builtins/js/ProcessObject.js5
-rw-r--r--src/bun.js/javascript.zig4
-rw-r--r--src/bun.js/streams.exports.js3
-rw-r--r--src/bun.js/webcore/streams.zig31
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| {