From 33978997310c48473d3ba6964d9fa9884e11d1b7 Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Fri, 13 Sep 2024 15:14:25 -0700 Subject: [PATCH] Revert "[tsgen] Handle different get/set types for value_objects too. (#22439)" This reverts commit bdf5b0d3e2ca0ecf1fa8d397850d3dad17901c7b. --- src/embind/embind_gen.js | 33 +++++++++++---------------- test/other/embind_tsgen.cpp | 2 -- test/other/embind_tsgen.d.ts | 14 +++++------- test/other/embind_tsgen_ignore_1.d.ts | 14 +++++------- test/other/embind_tsgen_ignore_2.d.ts | 14 +++++------- test/other/embind_tsgen_ignore_3.d.ts | 14 +++++------- 6 files changed, 37 insertions(+), 54 deletions(-) diff --git a/src/embind/embind_gen.js b/src/embind/embind_gen.js index a3cae99ea9e6d..7d0e6a46aa31c 100644 --- a/src/embind/embind_gen.js +++ b/src/embind/embind_gen.js @@ -243,18 +243,6 @@ var LibraryEmbind = { } }, - $printProperty: (prop, nameMap, out) => { - const setType = nameMap(prop.type, false); - const getType = nameMap(prop.type, true); - if (prop.readonly || setType === getType) { - out.push(`${prop.readonly ? 'readonly ' : ''}${prop.name}: ${getType}`); - return; - } - // The getter/setter types don't match, so generate each get/set definition. - out.push(`get ${prop.name}(): ${getType}`); - out.push(`set ${prop.name}(value: ${setType})`); - }, - $ClassProperty__deps: ['$printProperty'], $ClassProperty: class { constructor(type, name, readonly) { this.type = type; @@ -263,7 +251,15 @@ var LibraryEmbind = { } print(nameMap, out) { - printProperty(this, nameMap, out); + const setType = nameMap(this.type, false); + const getType = nameMap(this.type, true); + if (this.readonly || setType === getType) { + out.push(`${this.readonly ? 'readonly ' : ''}${this.name}: ${getType}`); + return; + } + // The getter/setter types don't match, so generate each get/set definition. + out.push(`get ${this.name}(): ${getType}`); + out.push(`set ${this.name}(value: ${setType})`); } }, $ConstantDefinition: class { @@ -329,7 +325,6 @@ var LibraryEmbind = { out.push(' ];\n\n'); } }, - $ValueObjectDefinition__deps: ['$printProperty'], $ValueObjectDefinition: class { constructor(typeId, name) { this.typeId = typeId; @@ -341,14 +336,12 @@ var LibraryEmbind = { } print(nameMap, out) { - out.push(`export type ${this.name} = {\n `); + out.push(`export type ${this.name} = {\n`); const outFields = []; - for (const field of this.fields) { - const property = []; - printProperty(field, nameMap, property); - outFields.push(...property); + for (const {name, type} of this.fields) { + outFields.push(` ${name}: ${nameMap(type)}`); } - out.push(outFields.join(',\n ')) + out.push(outFields.join(',\n')) out.push('\n};\n\n'); } }, diff --git a/test/other/embind_tsgen.cpp b/test/other/embind_tsgen.cpp index 435b9a7883dbc..5dc567b33d4fe 100644 --- a/test/other/embind_tsgen.cpp +++ b/test/other/embind_tsgen.cpp @@ -60,7 +60,6 @@ EMSCRIPTEN_DECLARE_VAL_TYPE(CallbackType); struct ValObj { Foo foo; Bar bar; - std::string str; CallbackType callback; ValObj() : callback(val::undefined()) {} }; @@ -179,7 +178,6 @@ EMSCRIPTEN_BINDINGS(Test) { value_object("ValObj") .field("foo", &ValObj::foo) .field("bar", &ValObj::bar) - .field("str", &ValObj::str) .field("callback", &ValObj::callback); register_vector("IntVec"); diff --git a/test/other/embind_tsgen.d.ts b/test/other/embind_tsgen.d.ts index fc6dc767b2e9f..d92c1ad366d1e 100644 --- a/test/other/embind_tsgen.d.ts +++ b/test/other/embind_tsgen.d.ts @@ -85,6 +85,12 @@ export interface ClassWithSmartPtrConstructor { delete(): void; } +export type ValObj = { + foo: Foo, + bar: Bar, + callback: (message: string) => void +}; + export interface BaseClass { fn(_0: number): number; delete(): void; @@ -97,14 +103,6 @@ export interface DerivedClass extends BaseClass { export type ValArr = [ number, number, number ]; -export type ValObj = { - foo: Foo, - bar: Bar, - get str(): string, - set str(value: EmbindString), - callback: (message: string) => void -}; - interface EmbindModule { Test: { staticFunction(_0: number): number; diff --git a/test/other/embind_tsgen_ignore_1.d.ts b/test/other/embind_tsgen_ignore_1.d.ts index fd9ddb04741cc..bf69ff032ffca 100644 --- a/test/other/embind_tsgen_ignore_1.d.ts +++ b/test/other/embind_tsgen_ignore_1.d.ts @@ -94,6 +94,12 @@ export interface ClassWithSmartPtrConstructor { delete(): void; } +export type ValObj = { + foo: Foo, + bar: Bar, + callback: (message: string) => void +}; + export interface BaseClass { fn(_0: number): number; delete(): void; @@ -106,14 +112,6 @@ export interface DerivedClass extends BaseClass { export type ValArr = [ number, number, number ]; -export type ValObj = { - foo: Foo, - bar: Bar, - get str(): string, - set str(value: EmbindString), - callback: (message: string) => void -}; - interface EmbindModule { Test: { staticFunction(_0: number): number; diff --git a/test/other/embind_tsgen_ignore_2.d.ts b/test/other/embind_tsgen_ignore_2.d.ts index e81e46aa0e85e..e84e5cb3efa50 100644 --- a/test/other/embind_tsgen_ignore_2.d.ts +++ b/test/other/embind_tsgen_ignore_2.d.ts @@ -71,6 +71,12 @@ export interface ClassWithSmartPtrConstructor { delete(): void; } +export type ValObj = { + foo: Foo, + bar: Bar, + callback: (message: string) => void +}; + export interface BaseClass { fn(_0: number): number; delete(): void; @@ -83,14 +89,6 @@ export interface DerivedClass extends BaseClass { export type ValArr = [ number, number, number ]; -export type ValObj = { - foo: Foo, - bar: Bar, - get str(): string, - set str(value: EmbindString), - callback: (message: string) => void -}; - interface EmbindModule { Test: { staticFunction(_0: number): number; diff --git a/test/other/embind_tsgen_ignore_3.d.ts b/test/other/embind_tsgen_ignore_3.d.ts index fc6dc767b2e9f..d92c1ad366d1e 100644 --- a/test/other/embind_tsgen_ignore_3.d.ts +++ b/test/other/embind_tsgen_ignore_3.d.ts @@ -85,6 +85,12 @@ export interface ClassWithSmartPtrConstructor { delete(): void; } +export type ValObj = { + foo: Foo, + bar: Bar, + callback: (message: string) => void +}; + export interface BaseClass { fn(_0: number): number; delete(): void; @@ -97,14 +103,6 @@ export interface DerivedClass extends BaseClass { export type ValArr = [ number, number, number ]; -export type ValObj = { - foo: Foo, - bar: Bar, - get str(): string, - set str(value: EmbindString), - callback: (message: string) => void -}; - interface EmbindModule { Test: { staticFunction(_0: number): number;