One of the things that Yossi Kreinin points out over and over again in his FQA is that C++ is full of features that you cannot ignore. Crockford's
Javascript: The Good Parts is made significantly simpler by the fact that Javascript doesn't have the ability to e.g. silently bitslice your objects if you don't write copy constructors at every level, or forcibly pollute your type system with const endlessly, or force you to declare virtual destructors at every level. It's a much simpler language with numerous weird and positively deranged syntactical and library constructs, but you can ignore syntax pretty easy and ignore the library constructs pretty easy, so you can subset it easily.
C++ is much harder to subset, because the various (mis)features lean against each other for support like a tower of cards. It's not stable, but it's even worse if you leave some of the cards out. Even compiling C under a C++ compiler lets the nose of the camel in, as it were, due to const correctness. And (depending on your runtime, but this is required by newer standards) the moment you use new, which you have to use in many ways, you now have a situation where your program can throw an exception.