#include "gdb-tests.h" #include "jsapi.h" FRAGMENT(jsid, simple) { JS::Rooted<JSString*> string(cx, JS_NewStringCopyZ(cx, "moon")); JS::Rooted<JSString*> interned(cx, JS_AtomizeAndPinJSString(cx, string)); JS::Rooted<jsid> string_id(cx, INTERNED_STRING_TO_JSID(cx, interned)); jsid int_id = INT_TO_JSID(1729); JS::Rooted<jsid> unique_symbol_id( cx, SYMBOL_TO_JSID(JS::NewSymbol(cx, interned))); JS::Rooted<jsid> registry_symbol_id( cx, SYMBOL_TO_JSID(JS::GetSymbolFor(cx, interned))); JS::Rooted<jsid> well_known_symbol_id( cx, SYMBOL_TO_JSID(JS::GetWellKnownSymbol(cx, JS::SymbolCode::iterator))); jsid void_id = JSID_VOID; jsid empty_id = JSID_EMPTY; breakpoint(); (void) string_id; (void) int_id; (void) unique_symbol_id; (void) registry_symbol_id; (void) well_known_symbol_id; (void) void_id; (void) empty_id; } void jsid_handles(JS::Handle<jsid> jsid_handle, JS::MutableHandle<jsid> mutable_jsid_handle) { // Prevent the linker from unifying this function with others that are // equivalent in machine code but not type. fprintf(stderr, "Called " __FILE__ ":jsid_handles\n"); breakpoint(); } FRAGMENT(jsid, handles) { JS::Rooted<JSString*> string(cx, JS_NewStringCopyZ(cx, "shovel")); JS::Rooted<JSString*> interned(cx, JS_AtomizeAndPinJSString(cx, string)); JS::Rooted<jsid> string_id(cx, INTERNED_STRING_TO_JSID(cx, interned)); jsid_handles(string_id, &string_id); }