File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ --TEST--
2+ Test V8Js::setModuleLoader : Native Module basic behaviour
3+ --SKIPIF--
4+ <?php require_once (dirname (__FILE__ ) . '/skipif.inc ' ); ?>
5+ --FILE--
6+ <?php
7+
8+ class NativeModule {
9+ public function sayHello ($ name )
10+ {
11+ echo "Hello $ name! \n" ;
12+ }
13+ }
14+
15+ $ v8 = new V8Js ();
16+ $ v8 ->setModuleLoader (function ($ module ) {
17+ return new NativeModule ();
18+ });
19+ $ v8 ->executeString ('require("foo").sayHello("World"); ' );
20+ ?>
21+ ===EOF===
22+ --EXPECT--
23+ Hello World!
24+ ===EOF===
Original file line number Diff line number Diff line change @@ -406,6 +406,15 @@ V8JS_METHOD(require)
406406 return ;
407407 }
408408
409+ if (Z_TYPE (module_code) == IS_OBJECT) {
410+ v8::Local<v8::Object> newobj = zval_to_v8js (&module_code, isolate)->ToObject ();
411+ c->modules_loaded [normalised_module_id].Reset (isolate, newobj);
412+ info.GetReturnValue ().Set (newobj);
413+
414+ efree (normalised_path);
415+ return ;
416+ }
417+
409418 // Convert the return value to string
410419 if (Z_TYPE (module_code) != IS_STRING) {
411420 convert_to_string (&module_code);
You can’t perform that action at this time.
0 commit comments