File tree Expand file tree Collapse file tree 6 files changed +32
-24
lines changed
system/include/emscripten Expand file tree Collapse file tree 6 files changed +32
-24
lines changed Original file line number Diff line number Diff line change @@ -676,7 +676,8 @@ class val {
676
676
pthread_t thread;
677
677
EM_VAL handle;
678
678
679
- friend struct internal ::BindingType<val>;
679
+ template <typename T, typename >
680
+ friend struct ::emscripten::internal::BindingType;
680
681
};
681
682
682
683
struct val ::iterator {
Original file line number Diff line number Diff line change @@ -52,9 +52,13 @@ struct ValArr {
52
52
int x, y, z;
53
53
};
54
54
55
+ EMSCRIPTEN_DECLARE_VAL_TYPE (CallbackType);
56
+
55
57
struct ValObj {
56
58
Foo foo;
57
59
Bar bar;
60
+ CallbackType callback;
61
+ ValObj () : callback(val::undefined()) {}
58
62
};
59
63
60
64
class ClassWithConstructor {
@@ -81,8 +85,6 @@ int smart_ptr_function(std::shared_ptr<ClassWithSmartPtrConstructor>) {
81
85
return 0 ;
82
86
}
83
87
84
- EMSCRIPTEN_DECLARE_VAL_TYPE (CallbackType);
85
-
86
88
int function_with_callback_param (CallbackType ct) {
87
89
ct (val (" hello" ));
88
90
return 0 ;
@@ -165,7 +167,8 @@ EMSCRIPTEN_BINDINGS(Test) {
165
167
166
168
value_object<ValObj>(" ValObj" )
167
169
.field (" foo" , &ValObj::foo)
168
- .field (" bar" , &ValObj::bar);
170
+ .field (" bar" , &ValObj::bar)
171
+ .field (" callback" , &ValObj::callback);
169
172
170
173
register_vector<int >(" IntVec" );
171
174
Original file line number Diff line number Diff line change @@ -65,11 +65,6 @@ export interface Foo {
65
65
delete ( ) : void ;
66
66
}
67
67
68
- export type ValObj = {
69
- foo : Foo ,
70
- bar : Bar
71
- } ;
72
-
73
68
export interface ClassWithConstructor {
74
69
fn ( _0 : number ) : number ;
75
70
delete ( ) : void ;
@@ -84,6 +79,12 @@ export interface ClassWithSmartPtrConstructor {
84
79
delete ( ) : void ;
85
80
}
86
81
82
+ export type ValObj = {
83
+ foo : Foo ,
84
+ bar : Bar ,
85
+ callback : ( message : string ) => void
86
+ } ;
87
+
87
88
export interface BaseClass {
88
89
fn ( _0 : number ) : number ;
89
90
delete ( ) : void ;
Original file line number Diff line number Diff line change @@ -74,11 +74,6 @@ export interface Foo {
74
74
delete ( ) : void ;
75
75
}
76
76
77
- export type ValObj = {
78
- foo : Foo ,
79
- bar : Bar
80
- } ;
81
-
82
77
export interface ClassWithConstructor {
83
78
fn ( _0 : number ) : number ;
84
79
delete ( ) : void ;
@@ -93,6 +88,12 @@ export interface ClassWithSmartPtrConstructor {
93
88
delete ( ) : void ;
94
89
}
95
90
91
+ export type ValObj = {
92
+ foo : Foo ,
93
+ bar : Bar ,
94
+ callback : ( message : string ) => void
95
+ } ;
96
+
96
97
export interface BaseClass {
97
98
fn ( _0 : number ) : number ;
98
99
delete ( ) : void ;
Original file line number Diff line number Diff line change @@ -51,11 +51,6 @@ export interface Foo {
51
51
delete ( ) : void ;
52
52
}
53
53
54
- export type ValObj = {
55
- foo : Foo ,
56
- bar : Bar
57
- } ;
58
-
59
54
export interface ClassWithConstructor {
60
55
fn ( _0 : number ) : number ;
61
56
delete ( ) : void ;
@@ -70,6 +65,12 @@ export interface ClassWithSmartPtrConstructor {
70
65
delete ( ) : void ;
71
66
}
72
67
68
+ export type ValObj = {
69
+ foo : Foo ,
70
+ bar : Bar ,
71
+ callback : ( message : string ) => void
72
+ } ;
73
+
73
74
export interface BaseClass {
74
75
fn ( _0 : number ) : number ;
75
76
delete ( ) : void ;
Original file line number Diff line number Diff line change @@ -65,11 +65,6 @@ export interface Foo {
65
65
delete ( ) : void ;
66
66
}
67
67
68
- export type ValObj = {
69
- foo : Foo ,
70
- bar : Bar
71
- } ;
72
-
73
68
export interface ClassWithConstructor {
74
69
fn ( _0 : number ) : number ;
75
70
delete ( ) : void ;
@@ -84,6 +79,12 @@ export interface ClassWithSmartPtrConstructor {
84
79
delete ( ) : void ;
85
80
}
86
81
82
+ export type ValObj = {
83
+ foo : Foo ,
84
+ bar : Bar ,
85
+ callback : ( message : string ) => void
86
+ } ;
87
+
87
88
export interface BaseClass {
88
89
fn ( _0 : number ) : number ;
89
90
delete ( ) : void ;
You can’t perform that action at this time.
0 commit comments