Bug 1263882: Set a default value in DescribeScriptedCaller if the filename is null; r?luke draft
authorBenjamin Bouvier <benj@benj.me>
Mon, 18 Apr 2016 16:47:25 +0200
changeset 352722 a001c14890d68a76aa8cc6c2141d95391c297efe
parent 352684 6828e2e05e1690cc36b1e282ee2f997ffce12e1f
child 518713 7ea0557c34b4d7d72f6b3114430e6546e1faf667
push id15761
push userbenj@benj.me
push dateMon, 18 Apr 2016 14:48:16 +0000
reviewersluke
bugs1263882
milestone48.0a1
Bug 1263882: Set a default value in DescribeScriptedCaller if the filename is null; r?luke MozReview-Commit-ID: KTJGoH8KEAc
js/src/jit-test/tests/wasm/basic.js
js/src/jsapi.cpp
--- a/js/src/jit-test/tests/wasm/basic.js
+++ b/js/src/jit-test/tests/wasm/basic.js
@@ -342,16 +342,19 @@ var code = '(module (import "one" "" (re
 var imports = {one:()=>1, two:()=>2};
 assertEq(wasmEvalText(code.replace('BODY', '(call_import 0)'), imports)(), 1);
 assertEq(wasmEvalText(code.replace('BODY', '(call_import 1)'), imports)(), 2);
 assertEq(wasmEvalText(code.replace('BODY', '(call 0)'), imports)(), 3);
 assertEq(wasmEvalText(code.replace('BODY', '(call 1)'), imports)(), 4);
 
 assertEq(wasmEvalText(`(module (import "evalcx" "" (param i32) (result i32)) (func (result i32) (call_import 0 (i32.const 0))) (export "" 0))`, {evalcx})(), 0);
 
+if (typeof evaluate === 'function')
+    evaluate(`Wasm.instantiateModule(wasmTextToBinary('(module)')) `, { fileName: null });
+
 var {v2i, i2i, i2v} = wasmEvalText(`(module
     (type (func (result i32)))
     (type (func (param i32) (result i32)))
     (type (func (param i32)))
     (func (type 0) (i32.const 13))
     (func (type 0) (i32.const 42))
     (func (type 1) (i32.add (get_local 0) (i32.const 1)))
     (func (type 1) (i32.add (get_local 0) (i32.const 2)))
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -6267,17 +6267,17 @@ void AutoFilename::setScriptSource(js::S
         p->incref();
         setUnowned(p->filename());
     }
 }
 
 void AutoFilename::setUnowned(const char* filename)
 {
     MOZ_ASSERT(!get());
-    filename_.as<const char*>() = filename;
+    filename_.as<const char*>() = filename ? filename : "";
 }
 
 void AutoFilename::setOwned(UniqueChars&& filename)
 {
     MOZ_ASSERT(!get());
     filename_ = AsVariant(Move(filename));
 }