`nativeImage.getBitmap()` allows accessing raw memory after it is freed.

```js
const { nativeImage } = require('electron')

const img = nativeImage.createFromDataURL('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYlWNgAAIAAAUAAdafFs0AAAAASUVORK5CYII=')
const bitmap = img.getBitmap()
console.log(bitmap)
setTimeout(() => {
  gc()
  console.log(bitmap)
}, 1000)
```

The above example produces the following output on my machine:

```
<Buffer 00 00 00 00>
<Buffer 50 b8 41 05>
```

The 2nd log is just an arbitrary chunk of memory. It's random each time I run the program.
shell/common/api/electron_api_native_image.cc
std::string name) {
  return CreateEmpty(args->isolate());
}
#endif
/
gin::ObjectTemplateBuilder NativeImage::GetObjectTemplateBuilder(
    v8::Isolate* isolate) {
  gin::PerIsolateData* data = gin::PerIsolateData::From(isolate);
  auto* wrapper_info = &kWrapperInfo;
  v8::Local<v8::FunctionTemplate> constructor =
      data->GetFunctionTemplate(wrapper_info);
  if (constructor.IsEmpty()) {
    constructor = v8::FunctionTemplate::New(isolate);
    constructor->SetClassName(gin::StringToV8(isolate, GetTypeName()));
    data->SetFunctionTemplate(wrapper_info, constructor);
  }
  return gin::ObjectTemplateBuilder(isolate, GetTypeName(),
                                    constructor->InstanceTemplate())
      .SetMethod("toPNG", &NativeImage::ToPNG)
      .SetMethod("toJPEG", &NativeImage::ToJPEG)
      .SetMethod("toBitmap", &NativeImage::ToBitmap)
      .SetMethod("getBitmap", &NativeImage::GetBitmap)
      .SetMethod("getScaleFactors", &NativeImage::GetScaleFactors)
      .SetMethod("getNativeHandle", &NativeImage::GetNativeHandle)