MCPcopy Create free account
hub / github.com/Tracktion/choc / demonstrateValueConversion

Function demonstrateValueConversion

examples/javascript_integration.cpp:138–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138void demonstrateValueConversion()
139{
140 std::cout << "\n=== Value Conversion Demo ===\n";
141
142 try
143 {
144 auto context = choc::javascript::createQuickJSContext();
145
146 // Test different value types
147 context.evaluateExpression ("var testNumber = 42.5;");
148 context.evaluateExpression ("var testString = 'Hello World';");
149 context.evaluateExpression ("var testBoolean = true;");
150 context.evaluateExpression ("var testArray = [1, 2, 3, 'four', 5.5];");
151 context.evaluateExpression ("var testObject = { name: 'test', value: 123, nested: { a: 1, b: 2 } };");
152
153 // Get and display values
154 auto number = context.evaluateExpression ("testNumber");
155 std::cout << "Number: " << number.getWithDefault<double>(0.0) << " (type: " << number.getType().getDescription() << ")\n";
156
157 auto string = context.evaluateExpression ("testString");
158 std::cout << "String: '" << string.toString() << "' (type: " << string.getType().getDescription() << ")\n";
159
160 auto boolean = context.evaluateExpression ("testBoolean");
161 std::cout << "Boolean: " << (boolean.getWithDefault<bool>(false) ? "true" : "false") << " (type: " << boolean.getType().getDescription() << ")\n";
162
163 auto array = context.evaluateExpression ("testArray");
164 std::cout << "Array: [";
165
166 for (uint32_t i = 0; i < array.size(); ++i)
167 {
168 if (i > 0) std::cout << ", ";
169 auto element = array[i];
170
171 if (element.isString())
172 std::cout << "'" << element.toString() << "'";
173 else
174 std::cout << element.getWithDefault<double>(0.0);
175 }
176
177 std::cout << "] (size: " << array.size() << ")\n";
178
179 auto object = context.evaluateExpression ("testObject");
180 std::cout << "Object properties:\n";
181
182 if (object.isObject())
183 {
184 std::cout << " name: " << object["name"].toString() << "\n";
185 std::cout << " value: " << object["value"].getWithDefault<double>(0.0) << "\n";
186 std::cout << " nested: [object]\n";
187 }
188 }
189 catch (const choc::javascript::Error& e)
190 {
191 std::cout << "JavaScript Error: " << e.what() << "\n";
192 }
193}
194
195void demonstrateAdvancedFeatures()

Callers 1

mainFunction · 0.85

Calls 7

whatMethod · 0.80
evaluateExpressionMethod · 0.45
getDescriptionMethod · 0.45
toStringMethod · 0.45
sizeMethod · 0.45
isStringMethod · 0.45
isObjectMethod · 0.45

Tested by

no test coverage detected