--- jsshell.h
+++ jsshell.h
@@ -45,30 +49,30 @@ class AutoCloseFile
         bool success = true;
         if (f_ && f_ != stdin && f_ != stdout && f_ != stderr)
             success = !fclose(f_);
         f_ = nullptr;
         return success;
     }
 };
 
-// Reference counted file.
-struct RCFile {
+struct File final : public RefCounted<File> {
     FILE* fp;
-    uint32_t numRefs;
 
-    RCFile() : fp(nullptr), numRefs(0) {}
-    RCFile(FILE* fp) : fp(fp), numRefs(0) {}
+    File() : fp(nullptr) {}
+    File(FILE* fp) : fp(fp) {}
+    ~File() {
+        this->close();
+    }
 
-    void acquire() { numRefs++; }
-
-    // Starts out with a ref count of zero.
-    static RCFile* create(JSContext* cx, const char* filename, const char* mode);
+    static already_AddRefed<File>
+    create(JSContext* cx, const char* filename, const char* mode);
 
     void close();
     bool isOpen() const { return fp; }
-    bool release();
 };
 
+using RCFile = RefPtr<File>;
+
 } /* namespace shell */
 } /* namespace js */
 
 #endif
