0

I am using React, React Hardware ([https://github.com/iamdustan/react-hardware/]), and Johnny-Five with the Particle Photon. This error stack below comes up when I run my lib/app.js file:

# Fatal error in ../deps/v8/src/api.cc, line 1062
# Check failed: !value_obj->IsJSReceiver() || value_obj->IsTemplateInfo().
#

==== C stack trace ===============================

    0   node                                0x00000001008c5ecd v8::base::debug::StackTrace::StackTrace() + 19
    1   node                                0x00000001008c4be5 V8_Fatal + 233
    2   node                                0x0000000100146438 v8::Template::SetAccessorProperty(v8::Local<v8::Name>, v8::Local<v8::FunctionTem
plate>, v8::Local<v8::FunctionTemplate>, v8::PropertyAttribute, v8::AccessControl) + 0
    3   serialport.node                     0x00000001044ab098 SerialportPoller::Init(v8::Local<v8::Object>) + 248
    4   serialport.node                     0x00000001044a98ed init + 1201
    5   node                                0x00000001007c681a node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) + 860
    6   node                                0x000000010016a808 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<
v8::Value> const&)) + 340
    7   node                                0x00000001001b1fdf v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespa
ce)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::Heap
Object>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments)
+ 915
    8   node                                0x00000001001b15b9 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::int
ernal::Isolate*) + 281
    9   ???                                 0x00000a3cdd6043a7 0x0 + 11256528389031
    10  ???                                 0x00000a3cdd80a246 0x0 + 11256530510406
[1]    69327 illegal hardware instruction  node lib/app.js

It's a bit puzzling because I don't know how the hardware is supposed to work.

Here is my src/app.js:

import React, {Component} from 'react';
import ReactHardware from 'react-hardware';

import five from 'johnny-five';
import Particle from 'particle-io';

class BlinkingLed extends Component {
  componentDidMount() {
    this.node = new five.Led(this.props.port);
    this.node.blink(this.props.period);
  }

  componentWillReceiveProps(nextProps) {
    if (this.props.period !== nextProps.period) {
      this.node.blink(nextProps.period);
    }
  }


  render() {
    return null;
  }
}

BlinkingLed.defaultProps = {
    port: 13,
    period: 500,
  };

ReactHardware.render(
  <BlinkingLed port={11} period={500} />,
  new five.Board({
        io: new Particle({
        token: process.env.PARTICLE_TOKEN,
        deviceId: process.env.PARTICLE_DEVICE_ID
    })
  }),
  (inst) => {
    console.log('Rendered <%s />', BlinkingLed.name);
  }
);

Here is my package.json is below. Please note that I am using Brunch, Babel, and React with JSX:

{
  "name": "react-particle",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "babel src -d lib"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "johnny-five": "^0.10.7",
    "particle-io": "^0.14.0",
    "react": "15.0.0-rc.1",
    "react-hardware": "^0.5.0-alpha.2"
  },
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-preset-env": "^1.3.2",
    "babel-preset-react": "^6.24.1"
  }
}
kopasetik
  • 63
  • 5
  • The error is coming from node-serialport, though I'm not sure why—when using Particle-IO with Johnny-Five, node-serialport is not used for communication with the board. That leaves React Hardware and I'm not familiar with that project's source code or it's execution semantics. I'm not sure why it's even necessary to add that layer? It doesn't appear to provide any benefit, or utility. – Rick Apr 07 '17 at 22:20

1 Answers1

0

The culprit was react-hardware. I was able to isolate the error message occurrence. The error only occurs when I require react-hardware.

kopasetik
  • 63
  • 5