MCPcopy Create free account
hub / github.com/buke/quickjs-go / getContextAndModuleBuilder

Function getContextAndModuleBuilder

module_bridge.go:25–48  ·  view source on GitHub ↗

getContextAndModuleBuilder retrieves context and ModuleBuilder from module private value.

(ctx *C.JSContext, m *C.JSModuleDef)

Source from the content-addressed store, hash-verified

23
24// getContextAndModuleBuilder retrieves context and ModuleBuilder from module private value.
25func getContextAndModuleBuilder(ctx *C.JSContext, m *C.JSModuleDef) (*Context, *ModuleBuilder, C.int32_t, error) {
26 privateValue := C.JS_GetModulePrivateValue(ctx, m)
27
28 var builderID C.int32_t
29 if moduleBuilderIDForceParseFailure.Load() || C.JS_ToInt32(ctx, &builderID, privateValue) < 0 {
30 C.JS_FreeValue(ctx, privateValue)
31 return nil, nil, 0, fmt.Errorf("failed to parse module builder id from module private value")
32 }
33 C.JS_FreeValue(ctx, privateValue)
34
35 goCtx, builderInterface, err := getContextAndObject(ctx, C.int(builderID), errFunctionNotFound)
36 if err != nil {
37 cleanupModuleBuilderHandle(goCtx, builderID)
38 return nil, nil, 0, fmt.Errorf("failed to get context and module builder: %v", err.message)
39 }
40
41 builder, ok := builderInterface.(*ModuleBuilder)
42 if !ok || builder == nil {
43 cleanupModuleBuilderHandle(goCtx, builderID)
44 return nil, nil, 0, fmt.Errorf("failed to get context and module builder: invalid module builder handle")
45 }
46
47 return goCtx, builder, builderID, nil
48}
49
50//export goModuleInitProxy
51func goModuleInitProxy(ctx *C.JSContext, m *C.JSModuleDef) C.int {

Callers 1

goModuleInitProxyFunction · 0.85

Calls 3

getContextAndObjectFunction · 0.85
LoadMethod · 0.80

Tested by

no test coverage detected