aboutsummaryrefslogtreecommitdiff
path: root/src/javascript
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-27 21:01:34 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-27 21:01:34 -0700
commit13f62973128aea9266b43cc2e0de1e7bf1768b52 (patch)
tree4c3544ead51e6fabcec3716468d52ecf25099d8b /src/javascript
parentf9dfa226a56eb02f33e81aa675e1011fbcf405fe (diff)
downloadbun-13f62973128aea9266b43cc2e0de1e7bf1768b52.tar.gz
bun-13f62973128aea9266b43cc2e0de1e7bf1768b52.tar.zst
bun-13f62973128aea9266b43cc2e0de1e7bf1768b52.zip
Access object properties from macros
Diffstat (limited to 'src/javascript')
-rw-r--r--src/javascript/jsc/base.zig13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/javascript/jsc/base.zig b/src/javascript/jsc/base.zig
index a5f2d336d..b0583dc53 100644
--- a/src/javascript/jsc/base.zig
+++ b/src/javascript/jsc/base.zig
@@ -1360,6 +1360,16 @@ pub fn NewClass(
).rfn;
def.callAsFunction = callback;
+ } else if (comptime strings.eqlComptime(function_names[i], "hasProperty")) {
+ def.hasProperty = @field(staticFunctions, "hasProperty").rfn;
+ } else if (comptime strings.eqlComptime(function_names[i], "getProperty")) {
+ def.getProperty = @field(staticFunctions, "getProperty").rfn;
+ } else if (comptime strings.eqlComptime(function_names[i], "setProperty")) {
+ def.setProperty = @field(staticFunctions, "setProperty").rfn;
+ } else if (comptime strings.eqlComptime(function_names[i], "deleteProperty")) {
+ def.deleteProperty = @field(staticFunctions, "deleteProperty").rfn;
+ } else if (comptime strings.eqlComptime(function_names[i], "getPropertyNames")) {
+ def.getPropertyNames = @field(staticFunctions, "getPropertyNames").rfn;
} else {
const CtxField = @field(staticFunctions, function_names[i]);
if (comptime !@hasField(@TypeOf(CtxField), "rfn")) {
@@ -1540,7 +1550,7 @@ pub fn castObj(obj: js.JSObjectRef, comptime Type: type) *Type {
return JSPrivateDataPtr.from(js.JSObjectGetPrivate(obj)).as(Type);
}
const JSNode = @import("../../js_ast.zig").Macro.JSNode;
-
+const LazyPropertiesObject = @import("../../js_ast.zig").Macro.LazyPropertiesObject;
pub const JSPrivateDataPtr = TaggedPointerUnion(.{
ResolveError,
BuildError,
@@ -1551,6 +1561,7 @@ pub const JSPrivateDataPtr = TaggedPointerUnion(.{
Body,
Router,
JSNode,
+ LazyPropertiesObject,
});
pub inline fn GetJSPrivateData(comptime Type: type, ref: js.JSObjectRef) ?*Type {